17

如果我查看 Django 的forms.pyas_p()calls _html_output(),它会设置字段错误的样式self.error_class()(尽管我找不到它的定义)。

但是,_html_output()不样式non_field_errors(代码中的又名 top_errors)。

一种如何设置非字段错误的样式?剪切并粘贴所有 _html_output?

我正在使用 Django 1.0。

4

4 回答 4

27

我使用此模板来设置非字段错误的样式:

{% 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 %}
于 2013-04-25T13:15:25.093 回答
10

在您的模板中,您可以访问 {{ form.non_field_errors }} 并根据需要渲染它们。以下是 Django 管理员处理它们的方式,例如:http ://code.djangoproject.com/browser/django/trunk/django/contrib/admin/templates/admin/change_form.html#L40

于 2009-09-02T15:52:51.607 回答
7

选项:

两者都{{ form.non_field_errors }}{{ form.non_field_errors.as_ul }}同样的事情。

{{ form.non_field_errors.as_text }}*在文本前面显示错误。

这篇文章也有助于解释为什么*不会删除django 票

于 2013-03-16T16:28:13.027 回答
0

可以在不使模板语言复杂化的情况下完成。在 Django 3 中,non_field_errors 列表具有“errorlist nonfield”类,因此您可以简单地使用 CSS 来设置它们的样式:

在您的 CSS 文件中:

.errorlist.nonfield {
    color: red;
}

在您的 html 模板中:

{{ form.as_p }}
于 2022-02-06T13:35:29.193 回答