【发布时间】:2021-07-05 10:55:24
【问题描述】:
我有以下路径:
path("polls/<int:week_id>/vote/", views.vote, name="vote")
在我看来,我写了以下方法:
def vote(request, week_id):
week = Week.objects.get(pk=week_id)
try:
selected_choice = week.choice_set.get(pk=request.POST["choice"])
except Week.DoesNotExist:
raise Http404("Poll for said week does not exists")
else:
selected_choice.votes += 1
selected_choice.save()
return redirect("results", week_id)
如果用户导航到polls/123/vote,我正在尝试引发404 页面,其中123 是数据库中不存在的一周。由于某种原因,上面的代码返回了一个DoesNotExist 错误,而不是实际的404 页面。我假设那行代码是我提出的404 页面没有被击中。对吗?
【问题讨论】:
-
您有两次对
.get的调用,其中第一个不在try-except 块week = Week.objects.get(pk=week_id)...
标签: python django http-status-code-404