2

我的用户模型中的 urls.py 文件有问题。当我访问 localhost:5000/users/ 时,我得到了预期的页面,但是当我转到 localhost:5000/users/1 时,我得到了一个页面,上面写着

Page not found (404)
Request Method:     GET
Request URL:    http://127.0.0.1:5000/users/1

Using the URLconf defined in ng_blog.urls, Django tried these URL patterns, in this order:

    ^users/$

但我的 urls.py 似乎定义得当。

urlpatterns = patterns('',
    url(
        r'^$', 
        UserList.as_view(),
        name='user_list'
    ),
    url(
        r'^(?P<username>\w+)/$', 
        UserDetail.as_view(),
        name='user_detail'
    ),
)

根 urls.py 文件是

urlpatterns = patterns('',
    url(r'^blog/$', include('blog.urls')),
    url(r'^users/$', include('users.urls')),
)
4

4 回答 4

4

在你的根 urls.py 中,改变

url(r'^users/$', include('users.urls')),

url(r'^users/', include('users.urls')),

表示 url 模式的$结束。因此问题。

还有,改变

 r'^(?P<username>)/$',

 r'^(?P<username>\w+)/$',
于 2013-06-25T21:00:12.493 回答
1

我认为您需要替换(?P<username>)(?P<username>[^/]+)(或其他一些适当的模式)。

于 2013-06-25T20:56:40.903 回答
1

尝试 r'^(?P\d+)/$' 代替。

d+ 将确保匹配 1 个或多个数字。

于 2013-06-25T21:02:55.590 回答
1

您的部分问题是您已将user_detail视图定义为仅匹配以 / 字符结尾的 URL,然后在失败的 URL 中未使用它。而且(正如其他人所指出的)您的username模式实际上与任何字符都不匹配。但是从尝试过的模式列表中,我怀疑您的ng_blog.urls文件中可能还有其他问题。

于 2013-06-25T20:56:10.550 回答