Django具有不同根的URL模式
问题描述:
我有两个URL模式,这两个模式都存在于我正在设置的相同应用程序中。Django具有不同根的URL模式
我需要像下面这样的工作。
然而,这两个生活在同一个Django应用程序。
我的主要urls.py看起来像这样处理/ p/12345网址。
urlpatterns = patterns('',
(r'^p/', include('myproject.myapp.urls')),
)
和我的urls.py为应用程序是类似的。但这仍然只处理/ p/12345网址。
urlpatterns = patterns('myproject.myapp.views',
(r'^(?P<object_id>\d+)/$', 'some_view'),
)
我的问题是,两者几乎相同,但只是有不同的前缀。我如何为/ p/12345和/ s/12345网址做到这一点。我已经阅读了文档,但无法弄清楚这一点。我已经想到了用2个urls.py文件做到这一点的“草率”方法,但我知道必须有更好的方法。
答
您可以包含一个空格式的URL文件。其他途径(如foo/
)必须是第一位的
主要urls.py
urlpatterns = patterns('',
(r'foo/', 'foo_view'),
(r'^', include('myproject.myapp.urls')),
)
应用urls.py
urlpatterns = patterns('puzzlequest.pq.views',
(r'^p/(?P<object_id>\d+)/$', 'some_view'),
(r'^s/(?P<object_id>\d+)/$', 'other_view'),
)
注意:你能做到这一点。
有没有办法让根路径,即`http:// www.example.com /`,在包含的URLconf中定义,而不是在根URLconf中定义?似乎无法使其工作。 – jmagnusson 2011-04-06 10:53:50