Django 加载FormView时如何重定向?

Django 加载FormView时如何重定向?,django,redirect,Django,Redirect,使用基于类的视图FormView如果用户已经激活,我想重定向到另一个页面 因此,我尝试重写get\u form\u kwargs函数: class UserActivateView(AnonymousRequiredMixin, FormView): ... def get_form_kwargs(self): .... if profile.activated: # User is already activate

使用基于类的视图
FormView
如果用户已经激活,我想重定向到另一个页面

因此,我尝试重写
get\u form\u kwargs
函数:

class UserActivateView(AnonymousRequiredMixin, FormView):
    ...
    def get_form_kwargs(self):
        ....
        if profile.activated:
                # User is already activated an can log in
                messages.info(
                    self.request,
                    'You are already activated. '
                    'Login or click forgot password if you have forgotten'
                )
                redirect(to=reverse_lazy('auth_login'))
        ....
        return kwargs
使用此方法添加消息,但从未执行重定向

我是否在正确的位置执行此重定向,我已将其用作参考

也许您可以使用并装饰您的CBV的
dispatch()
方法


或者只需覆盖
dispatch()
方法,以便您可以包含您的消息

不,您不能
get\u form\u kwargs
用于获取表单kwargs。这应该通过负责返回响应的方法来完成,即
dispatch
,或
get
post
。注意,您还需要实际返回重定向。
user\u passes\u test
重定向到登录,因此将尝试调度覆盖,而不是
user\u passes\u test
使用可选的
login\u url
参数,这样您就不必重定向到登录页面。@surfer190,答案有用吗?你成功地从那里重定向了吗?