2012-04-18 45 views
4

我試圖讓我的a_detail重定向到我的a_detail_slug url。我想用此命名的網址,但我還沒有成功,這是我已經試過:使用帶有指定網址的Django的RedirectView

url(r'^a/(?P<pk>\d+)/(?P<filler>[\w-]+)/$', AList.as_view(template_name="a.html"), name="a_detail_slug"), 

url(r'^a/(?P<pk>\d+)/$', RedirectView.as_view(url=reverse_lazy("a_detail_slug"),), name="a_detail"), 

這是爲了捕捉任何鏈接與有效的PK和重定向到該頁面與附加填充物。

回答

9

a_detail_slug需要2個參數(pkfiller),但你沒有通過它們。最簡單的方法將延長RedirectView:

class ARedirect(RedirectView): 
    def get_redirect_url(self, pk): 
     filler = get_filler_somehow() 
     return reverse('a_detail_slug', args=(pk, filler)) 
+0

完美的解決方案。 – vascop 2012-04-18 15:00:35