2012-04-18 2 views
4

a_detail을 내 a_detail_slug URL로 리디렉션하려고합니다. 나는 이것에 대한 명명 된 URL을 사용하고 싶지만 나는 아직 성공하지 않은, 이것은 내가 무엇을 시도했다입니다 :명명 된 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