0

您好,我是 Django 的新手。

我正在创建一个用于练习的博客应用程序,我想将与博客应用程序相关的 url 与与其他应用程序相关的 url 分开。

由于有很多与博客相关的 url 模式,我只包含在 main 中urls.py。这是我的 urls.py:

My_Project/My_Project/urls.py

urlpatterns = patterns('',
    # Blog
    url(r'^$', include('app_blog.urls'), name='app_blog'),

    # Admin
    url(r'^admin/$', include(admin.site.urls), name='admin_page'),
    ......

My_Project/app_blog/urls.py

urlpatterns = patterns('',
    # Index page
    url(r'^index/$', index_page),

    # User page
    url(r'^user/(?P<pk>\d+)/', UserDetail.as_view(), name='user_detail'),
    ......

所以我希望当我导航到“www.example.com/index”时,浏览器会显示index_page视图,而对于“www.example.com/user/1”,它将显示 id 等于的用户的用户详细信息视图1.

但是,由于某种原因,它显示两个页面的 404 page not found 错误。

我哪里出错了?

4

2 回答 2

0
  1. name参数用于单个 url 模式。从 My_Project/My_Project/urls.py 的这一行中删除它
  2. 正则表达式模式不应为“^$”。取而代之的是普通''的。

    url(r'', include('app_blog.urls'))
    
于 2013-08-01T12:43:11.380 回答
0

问题在这里:

# Blog
url(r'^$', include('app_blog.urls'), name='app_blog'),
     ~~~

您将 url 限制为空路径,这意味着不是空路径的所有内容都不会与app_blog.urls. 改为这样做:

# Blog
url(r'^', include('app_blog.urls')),
于 2013-08-01T13:32:53.190 回答