使用Django的RedirectView和一个命名的url

时间:2012-04-18 13:10:53

标签: python django django-urls django-class-based-views

我正在尝试将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的链接,并使用附加填充重定向到该页面。

1 个答案:

答案 0 :(得分: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))