Django有些网址不起作用

时间:2015-06-05 10:11:23

标签: python django

我在Django中制作了一些URL,包括它们等等。一切看起来都不错,但无论我做什么,我总会在一些最简单的URL上得到404.

例如,我可以浏览myapp/0 abd myapp/1/details/,但我会在myapp/foo

获得404&#39}

所以这是我的urlconf:

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^myapp/', include('myapp.urls')),
]

和myapp urlconf:

urlpatterns = [
    url(r'^foo/$ ', FooView.as_view()),
    url(r'^(?P<bar_id>\d+)/$', BarByIdView.as_view()),
    url(r'^(?P<bar_id>\d+)/details/$', BarDetailsByIdView.as_view()),
]

当我试试myapp/foo Django向我展示了以下网址列表:

^admin/
^myapp/ ^foo/$
^myapp/ ^(?P<bar_id>\d+)/$
^myapp/ ^(?P<bar_id>\d+)/details/$

2 个答案:

答案 0 :(得分:3)

myapp.conf中,您在/模式的末尾添加了url

url(r'^foo/$ ', FooView.as_view()

必须使用/myapp/foo/而不是/myapp/foo来查看,因为第一个匹配正则表达式而第二个不匹配。

答案 1 :(得分:2)

您的网址为/myapp/foo/,而不是/myapp/foo。请注意尾部斜杠。

如果您希望两者都有效,请确保将APPEND_SLASH setting设置为True并启用CommonMiddleware