Django 404错误页面未找到...当前路径与最后一个路径匹配

Bra*_*don 3 django http-status-code-404

我是 django 的新手,我正在尝试我自己的民意调查教程的变体。我的应用程序运行良好,每个页面都正确加载。然后我做了一个改变;我创建然后删除了一个模型。现在,许多网址似乎已损坏。我不明白这个错误:

\n
Page not found (404)\nRequest Method: GET\nRequest URL:    http://127.0.0.1:8000/polls/1/pick/\nRaised by:  polls.views.pick\nUsing the URLconf defined in mySite.urls, Django tried these URL patterns, in this order:\n\npolls/ [name='index']\npolls/ <int:pk>/ [name='detail']\npolls/ <int:pk>/results/ [name='results']\npolls/ <int:question_id>/vote/ [name='vote']\npolls/ <int:question_id>/tally/ [name='tally']\npolls/ <int:question_id>/pick/ [name='pick']\nThe current path, polls/1/pick/, matched the last one.\n\nYou\xe2\x80\x99re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.\n
Run Code Online (Sandbox Code Playgroud)\n

所以我不明白为什么它说:当前路径 polls/1/pick/ 与最后一个匹配。

\n

并且还找不到页面?这是如何运作的?当应用程序以前运行良好时,可能是什么导致了这种情况?

\n

我的网址.py:

\n
from django.urls import path\n\nfrom . import views\n\napp_name = 'polls'\n\nurlpatterns = [\n    path('', views.IndexView.as_view(), name='index'),\n    path('<int:pk>/', views.DetailView.as_view(), name='detail'),\n    path('<int:pk>/results/', views.ResultsView.as_view(), name='results'),\n    path('<int:question_id>/vote/', views.vote, name='vote'),\n    path('<int:question_id>/tally/', views.tally, name='tally'),\n    path('<int:question_id>/pick/', views.pick, name='pick'),\n    path('<int:pk>/video/', views.VideoView.as_view(), name='video'),\n    path('<int:pk>/reveal/', views.RevealView.as_view(), name='reveal'),\n]\n
Run Code Online (Sandbox Code Playgroud)\n

和视图片段:

\n
def pick(request, question_id):\n    question = get_object_or_404(Question, pk=question_id)\n    player = get_object_or_404(Player, pk=1)\n    question.score = player.score\n    question.save()\n    return HttpResponseRedirect(reverse('polls:video', args=(question.id,)))\n
Run Code Online (Sandbox Code Playgroud)\n

小智 7

这行错误

Raised by:  polls.views.pick
Run Code Online (Sandbox Code Playgroud)

告诉你,由于找不到匹配的 URL,你没有得到 404,你得到 404 是因为你的视图函数polls.views.pick引发了 404。该函数中有两行可能引发 404

question = get_object_or_404(Question, pk=question_id)
player = get_object_or_404(Player, pk=1)
Run Code Online (Sandbox Code Playgroud)

因此,在您的数据库中,您要么没有 pk=1 的问题,要么没有 pk=1 的玩家。