4

自分のURLにa_detailリダイレクトしようとしています。a_detail_slugこれに名前付きのURLを使用したいのですが、まだ成功していません.これは私が試したことです:

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 を持つすべてのリンクをキャッチし、フィラーを追加してそのページにリダイレクトするためのものです。

4

1 に答える 1

9

a_detail_slug2 つのパラメーター (pkおよびfiller) が必要ですが、いずれも渡しません。最も簡単な方法は、RedirectView を拡張することです。

class ARedirect(RedirectView):
    def get_redirect_url(self, pk):
        filler = get_filler_somehow()
        return reverse('a_detail_slug', args=(pk, filler))
于 2012-04-18T13:42:40.690 に答える