如何在使用TemplateView和crispy表单时显示验证错误消息

时间:2015-06-10 09:55:28

标签: django validation django-forms django-crispy-forms

如何使用Crispy Forms返回包含错误消息的表单。我无法使用FormView,因为我正在尝试将多个模型表单添加到同一个标记中。

class Test(TemplateView):
    template_name = 'login.html'

    def get(self, request, *args, **kwargs):
        form = RegistrationForm()
        return render(request, self.template_name, {'form': form})

    def post(self, request, *args, **kwargs):
        form = RegistrationForm(request.POST)

        if form.is_valid():
            print 'valid'
        else:
            form = RegistrationForm()
            print self.get_context_data()

            for x in self.get_context_data():
                print type(x)
            print form.errors

            return render(request, self.template_name,{'form': form})

1 个答案:

答案 0 :(得分:1)

表单无效时,请勿创建新表单。它会覆盖包含错误的绑定表单。

如果删除该行,那么无论您在模板中使用{{ form }}还是脆弱表单,表单都会显示错误。

def post(self, request, *args, **kwargs):
    form = RegistrationForm(request.POST)
    if form.is_valid():
        # do something with form, then redirect
    else:
        form = RegistrationForm() # remove this line
        return render(request, self.template_name, {'form':form})