2016-07-04 55 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'獲得! –

相關問題