2012-04-18 37 views
4

a_detaila_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

関連する問題