我在尝试提交评论表时遇到了问题。下面是两个问题
pk=1
的情况下发送表格时,它会在下面返回错误MultipleObjectsReturned at /submit _review/7/
get() returned more than are Action Review--it returned 6!
pk=1
时发送表格时,它有效并且审查表格被发送给管理员。 但是以下内容也不起作用只改变id=1的review form
我的期望和需求
我想提交一个表格,它得到new id不像
pk=1
那样固定,但每次发送或提交每张表格都得到一个new id
#Action/views.py
def submit_review(request,game_id):
url = request.META.get('HTTP_REFERER')
if request.method == 'POST':
try:
reviews = ActionReview.objects.get(user__id=request.user.id, game_name__id=game_id, pk=1)
form = Game_ReviewForm(request.POST, instance=reviews)
form.save()
messages.success(request, 'Thank you! , Your review has been Updated Successfully.')
return redirect(url)
except ActionReview.DoesNotExist:
form =Game_ReviewForm(request.POST)
if form.is_valid():
data=ActionReview()
data.subject = form.cleaned_data['subject']
data.stars = form.cleaned_data['stars']
data.content = form.cleaned_data['content']
data.game_id=game_id
data.user__id=request.user.id
data.save()
messages.success(request, 'Thank you! , Your review has been Added Successfully.')
return redirect(url)
.get
django 中的方法尝试返回 1 行,它不应该返回多个
如果您想获得多个结果,请使用
.filter
reviews = ActionReview.objects.filter(user__id=request.user.id, game_name__id=game_id) # Returns everything matching this logic
在你的 try 块中
try:
reviews = ActionReview.objects.filter(user__id=request.user.id, game_name__id=game_id)
for instance in reviews:
form = Game_ReviewForm(request.POST, instance=instance)
form.save()
messages.success(request, 'Thank you! , Your review has been Updated Successfully.')
return redirect(url)