如何在Django中输出模型形式错误

时间:2016-07-20 16:46:10

标签: django django-forms

如何触发is_valid()的反面?这就是我到目前为止所做的:

def post(self, request):
        user_form = self.form_class(request.POST)
        second_form = self.second_form_class(request.POST)

    if user_form.is_valid() and second_form.is_valid():
        user = user_form.save(commit=False)
        invite = second_form.save(commit=False)

        username = user_form.cleaned_data['username']
        password = user_form.cleaned_data['password']
        email = user_form.cleaned_data['email']
        code = second_form.cleaned_data['code']

        user.set_password(password)
        user.is_staff = True
        user.save()

        user = authenticate(username=username, password=password)

        if user is not None:
            if user.is_active:
                login(request, user)
                return redirect('main:welcome')

我想检查这是否属实,但我不知道如何在我的通用视图中实现它:

the_invite = Invites.objects.filter(code=code)

if the_invite.exists():
    the_invite.delete()
else:
    second_form.add_error()

我想简单地输出如下错误消息,例如:“您输错了代码”:enter link description here

2 个答案:

答案 0 :(得分:0)

当表单无效时,您需要将其发送到模板并呈现:

{{ form.errors }}

答案 1 :(得分:0)

"我想简单地输出如下错误信息:"您输入了错误的代码""

好吧,你可以像这样添加错误:

form._errors = ErrorDict()
errors = form._errors.setdefault('[name of the field that failed verification]', ErrorList())
errors.append('[Your error message]')

然后将此表单返回给用户。