我使用FormView和ModelForm来处理注册表单。如果重复电子邮件,我提出ValidationError。但是此错误消息在注册模板上不可用作non_field_errors。
当我试图在RegistrationView中找到form_invalid方法中的form.errors时,它显示了预期的错误,但不知何故它没有传递给模板。
答案 0 :(得分:1)
首先,我们必须确定它是否为non_field_error或字段错误。
您在已定义的ModelForm中提升ValidationError
的位置?
如果它在表单的def clean()
中被提升,那么它将出现在non_field_errors 中,并且可以通过模板中的form.non_field_errors
进行访问
如果它在def clean_<field_name>()
中引发,则会出现字段错误,可以通过模板中的form.errors
或form.<field_name>.error
进行访问/ p>
请自行决定在哪里举起它。
注意:ModelForm可以与FormView一起使用。但理想情况下,有
的CreateView和UpdateView答案 1 :(得分:0)
这样的东西?
{% if my_form.non_field_errors %}
<div class="alert alert-error">
<ul>
{% for error in my_form.non_field_errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
</div>
{% endif %}