开发者

Django urls.py problem passing variables

开发者 https://www.devze.com 2023-01-26 06:31 出处:网络
I have an app called portfolio and I am trying to map out the pages so that i end up with a fixed area that always exists called \'gallery\'. I have set this up and it\'s working fine, but the gallery

I have an app called portfolio and I am trying to map out the pages so that i end up with a fixed area that always exists called 'gallery'. I have set this up and it's working fine, but the gallery items are mapped to page_type areas, such as 'images', 'videos' etc so I wanted my root urls.py to detect this and then send t the correct view but I cant figure out how to do it

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

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

Is it even possible? And how? I can't find any info on passing the 开发者_StackOverflowmatching expressions etc.

PLease help. Thanks :)

A friend has pointed out that I could go directly to the views rather than go via the apps urls.py by doing something like this [code] (r'^(?P[a-zA-Z0-9-]+)/(?P[a-zA-Z0-9-]+)/$', 'portfolio.views.detail'), [/code]

and then accessing it using: [code] def detail(request, page_type, page_name): ... [/code]


You have to move (r'^gallery/', include('portfolio.urls')), BEFORE (r'^(?P<page_type>[a-zA-Z0-9-]+)/$', include('portfolio.urls')), because the page type regex will also match 'gallery/' and the patterns are apllied in the order as they are defined!

0

精彩评论

暂无评论...
验证码 换一张
取 消