如果我查看Django的 forms.py ,as_p()
调用_html_output()
,它会将字段错误设为self.error_class()
(虽然我找不到定义那个)。
但是,_html_output()
不会设置non_field_errors
的样式(代码中为a.k.a. top_errors)。
如何设置非字段错误的样式?剪切并粘贴所有_html_output?
我正在使用Django 1.0。
答案 0 :(得分:17)
我使用此模板设置非字段错误的样式:
{% if form.non_field_errors %}
<div class="non-field-errors">
{% for err in form.non_field_errors %}
<p class="form-error">{{ err }}</p>
{% endfor %}
</div>
{% endif %}
答案 1 :(得分:10)
在您的模板中,您可以访问{{form.non_field_errors}}并根据需要渲染它们。以下是Django管理员处理它们的方式:http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/templates/admin/change_form.html#L40
答案 2 :(得分:6)
选项:强>
{{ form.non_field_errors }}
和{{ form.non_field_errors.as_ul }}
都做同样的事情。
{{ form.non_field_errors.as_text }}
会在文字前面显示*
的错误。
本文还有助于解释为什么*
不会被删除django ticket