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

注意:你能做到这一点。

+2

有没有办法让根路径,即`http:// www.example.com /`,在包含的URLconf中定义,而不是在根URLconf中定义?似乎无法使其工作。 – jmagnusson 2011-04-06 10:53:50