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这两种网址呢?我看过文档,但还是没搞明白。我想过用两个urls.py文件来解决这个问题,但我知道一定有更好的办法。
1 个回答
0
你可以在一个URL文件中包含一个空的模式。你可以这样做:
主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'),
)
注意,其他的路由(比如 foo/
)必须放在前面。