在表单上设置django非字段错误

时间:2009-09-02 15:42:10

标签: django django-forms styling

如果我查看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。

3 个答案:

答案 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