Path()模式的404错误问题

时间:2018-06-25 13:11:04

标签: django django-urls

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')
    ]

1 个答案:

答案 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')