Django:FormView:如何添加初始逻辑?

时间:2014-02-12 23:51:30

标签: python django django-views

我有一个带有一些验证的FormView,一切正常。但是,我想根据我的一些条件添加一些可以立即重定向到另一个视图的初始逻辑。像这样:

class UserFormView(FormView):
    template_name = 'pages_fixed/users/userform.html'
    form_class = UserForm

    def get(self, request):
        if condition:
            # if some condition met, want to immediately go to another URL..
            return redirect('/dashboard/')
        else:
           # condition not met, just display the form..
           return request

    def form_valid(self, form):
        # Form validates, code away...

我似乎无法使其工作 - 是否在FormView中没有get()方法?由于我不能将两个以上的args传递给它,要么我得到无限重定向,要么它缺少形式......

我知道我可以将其转换为使用View但我真的很想了解其中的区别。什么时候比另一个更好? (到目前为止,使用FormView看起来要快得多 - 根据我的经验,每当我做return render(request, url) Django需要一段时间......)

1 个答案:

答案 0 :(得分:1)

请勿返回请求。你需要返回超级的结果。

if condition:
    return redirect('/dashboard/')
else:
    return super(UserFormView, self).get(request)