在django模板中,我想在表单顶部显示所有表单错误, 最简单的方法就是这样做:
{{ form.errors }}
问题是,这也会显示form.non_field_errors
,这些是form.errors['__all__']
中包含的条目。
我想分别显示这些特殊错误,所以我试图遍历dict并检查密钥是否存在:
{% for err in form.errors %}
{% if not err.__all__ %}
{# print error #}
{% endif %}
{% endfor %}
但显然这是不可能的,因为在模板中我们无法访问以下划线(doc)开头的字典键。
问题:是否有内置方式来访问(并可能打印)标准字段错误,并单独使用non_field_errors?
解决方案 这是建立在丹尼尔罗斯曼的answer:
之上{% if form.errors %}
<div class="ui error icon message">
<ul>
{% if form.non_field_errors %}
{% for error in form.non_field_errors %}
<li>{{ error|escape }}</li>
{% endfor %}
{% endif %}
{% for field in form %}
{% if field.errors %}
<li> {{ field.name }}
<ul>
{% for error in field.errors %}
<li>{{ error|escape }}</li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
</ul>
</div>
{% endif %}
答案 0 :(得分:3)
您可以遍历字段并访问其错误:
{% for field in form %}
{% field.errors %}
{% endfor %}