2016-07-04 30 views
1

我有多个网址,它们的任务几乎完全相同(生成带有相应上下文的列表页面)。所以我urlpatterns是一样的东西:一个基于类的视图对象,取决于参数的多个网址

url('^by-country/(?<arg1>\w+)', MyO.as_view(), name='by-country'), 
url('^by-period/(?<arg1>\w+)', MyO.as_view(), name='by-period'), 
url('^by-age/(?<arg1>\w+)', MyO.as_view(), name='by-age') 

有没有办法通过在基于一个类鉴于by-blabla字符串没有使它在我urlpatterns命名参数第二正则表达式?

由于我使用的派生类(即MyO)的View,除了已声明的属性(例如template_name)之外,我无法传递任何内容。那么,有没有干净的方法来做到这一点?

回答

1

所有的url模式接受第三个位置参数,这是一个额外参数的字典,用于传递给不是来自正则表达式本身的视图。所以:

url('^by-country/(?<arg1>\w+)', MyO.as_view(), {'category': 'by-country'}, name='by-country'), 
+0

是否将额外参数传递给基于类的视图的'dispatch'方法? –

+0

感谢Daniel !,但我在哪里提取'category'参数?在我的'get'方法中? –

+0

谢谢,它可以从'kwargs'获得! –

相关问题