我有一个名为投资组合的应用程序,我正在尝试绘制页面,以便最终得到一个始终存在的固定区域,称为“图库”。我设置了它并且工作正常,但是图库项目被映射到page_type区域,例如'images','videos'等所以我希望我的root urls.py检测到这个然后发送正确的视图但是我无法弄清楚如何做到这一点
root urls.py
urlpatterns = patterns('',
(r'^(?P<page_type>[a-zA-Z0-9-]+)/$', include('portfolio.urls')),
(r'^gallery/', include('portfolio.urls')),
(r'^admin/(.*)', admin.site.root)
)
投资组合urls.py
urlpatterns = patterns('portfolio.views',
#(r'^(?P<gallery_type>\d+)/$', 'index'),
(r'^page/(?P<page_number>[0-9]+)/$', 'index'),
(r'^(?P<page_category>[a-zA-Z0-9-]+)/$', 'category_index'),
(r'^(?P<page_category>[a-zA-Z0-9-]+)/page/(?P<page_number>[0-9]+)/$', 'category_index'),
(r'^$', 'index'),
)
甚至可能吗?如何?我找不到关于传递匹配表达式等的任何信息。
提供帮助。谢谢:))
一位朋友指出我可以直接查看视图而不是通过应用程序urls.py来做这样的事情 [码] (r'^(?P [a-zA-Z0-9 - ] +)/(?P [a-zA-Z0-9 - ] +)/ $','portfolio.views.detail'), [/代码]
然后使用以下方法访问它: [码] def detail(request,page_type,page_name): ... [/代码]
答案 0 :(得分:5)
您必须在(r'^gallery/', include('portfolio.urls')),
之前移动(r'^(?P<page_type>[a-zA-Z0-9-]+)/$', include('portfolio.urls')),
,因为页面类型正则表达式也会匹配'gallery /',并且模式在定义时按顺序显示!