def vote(request, poll_id, choice_id):
try:
poll = Poll.objects.get(pk = poll_id)
choice = Choice.objects.get(poll=poll, pk=choice_id)
choice.votes +=1
url = '/polls/' + poll_id
return HttpResponseRedirect(url)
except Poll.DoesNotExist or Choice.DoesNotExist:
return Http404
我正在运行Django教程,并在查看其余章节之前尝试使其正常运行,并且我坚持使用投票功能进行示例轮询功能。
我有一个民意调查描述功能显示一个页面,其中包含每个民意调查的当前投票和选择,并且我试图让这个投票视图只添加一票并将用户返回到您正在查看的民意调查的描述页面。
我尝试在shell中进行手动操作,该功能会将您重定向回轮询描述页面,但实际的投票编号永远不会改变。我的代码出了什么问题?感谢
答案 0 :(得分:3)
在递增投票后,您错过了保存对象。
def vote(request, poll_id, choice_id):
try:
poll = Poll.objects.get(pk = poll_id)
choice = Choice.objects.get(poll=poll, pk=choice_id)
choice.votes +=1
## Saves in database otherwise updates are lost.
choice.save()
url = '/polls/' + poll_id
return HttpResponseRedirect(url)
except Poll.DoesNotExist or Choice.DoesNotExist:
return Http404