使用FormView django在form_valid中呈现模板而不是success_url

时间:2015-06-09 22:14:41

标签: django django-forms django-class-based-views

正如标题所说:我需要在提交表单后呈现模板,此表单由while let data = Provider.getData() { ... } 处理,方法为FormView。使用方法form_valid,我可以在提交后呈现模板,但可能使用post,我可以用最干净的方式完成。

我该怎么做?

1 个答案:

答案 0 :(得分:11)

form_valid的默认实现是重定向到success_url,您只需要覆盖它以呈现某些页面。这是一个例子。

class ChangePasswordPage(FormView):
    template_name = 'core/password-change.html'
    form_class = PasswordChangeForm

    def form_valid(self, form):
        form.save()
        messages.success(self.request, "Your password is changed")
        return render(self.request, 'core/password-change-success.html', self.get_context_data())