我有两个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网址执行此操作。我已经阅读了文档,但无法解决这个问题。我已经想过用'urls.py文件做'草率'的方法,但我知道必须有更好的方法。
答案 0 :(得分:0)
您可以包含空模式的网址文件。你可以这样做:
main urls.py
urlpatterns = patterns('',
(r'foo/', 'foo_view'),
(r'^', include('myproject.myapp.urls')),
)
app urls.py
urlpatterns = patterns('puzzlequest.pq.views',
(r'^p/(?P<object_id>\d+)/$', 'some_view'),
(r'^s/(?P<object_id>\d+)/$', 'other_view'),
)
请注意,其他路线(如foo/
)必须先行。