path('add', views.TopicCreate.as_view(), name='add-topic')
]
当我尝试运行它时(通过输入http://127.0.0.1:8000/home/add),它给我404错误,表明它与任何模式都不匹配。即使它说那里有匹配的网址格式。
home/ [name='index']
home/ <int:topic_id> [name='details']
home/ add [name='topic-add']
admin/
The current path, home/add/, didn't match any of these.
奇怪的是,当我在Mozilla和Google Incognito中尝试该链接时,该链接有效。在IE(无论是否为私有窗口)和普通Chrome上均不起作用。
完整的urls.py:
app_name = "home"
urlpatterns = [
path('', views.index, name="index"),
path('<int:topic_id>/', views.detail, name='detail'),
path('add', views.TopicCreate.as_view(), name='topic-add')
]
答案 0 :(得分:0)
我认为您已将APPEND_SLASH设置为False
,或者您的中间件中没有CommonMiddleware
。
错误404背后的原因是,您的网址不是以斜杠home/add
结尾,而是您以斜杠home/add/
访问路径。如果您包含CommomMiddleware或在设置中将APPEND_SLASH
设置为True,则不会引发HTTP_ERROR。
请记住,这会产生一些影响,例如它将发出重定向等。有关更多信息,请参阅上面链接中的文档。
如果您不想设置APPEND_SLASH
,则可以更新网址并在末尾添加斜杠:
path('add/', views.TopicCreate.as_view(), name='add-topic')