Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django access表单错误,不包括模板中的非字段错误_Python_Django_Forms_Django Templates - Fatal编程技术网

Python Django access表单错误,不包括模板中的非字段错误

Python Django access表单错误,不包括模板中的非字段错误,python,django,forms,django-templates,Python,Django,Forms,Django Templates,在django模板中,我希望在表单顶部显示所有表单错误, 最简单的方法是: {{ form.errors }} 问题是,这还显示了表单.非字段\u错误,这些是表单.errors[''所有\uuuu']中包含的条目 我想分别显示这些特殊错误,因此我尝试在dict上循环并检查密钥是否存在: {% for err in form.errors %} {% if not err.__all__ %} {# print error #} {% endif %} {% endfor %}

在django模板中,我希望在表单顶部显示所有表单错误, 最简单的方法是:

{{ form.errors }}
问题是,这还显示了
表单.非字段\u错误
,这些是
表单.errors[''所有\uuuu']
中包含的条目

我想分别显示这些特殊错误,因此我尝试在dict上循环并检查密钥是否存在:

{% for err in form.errors %}
  {% if not err.__all__ %}
    {# print error #}
  {% endif %}
{% endfor %}
但显然这是不可能的,因为在模板中,我们无法访问以下划线()开头的字典键

问题:是否有一种内置的方式来访问(并可能打印)标准字段错误和单独的非字段错误

解决方案 这是建立在Daniel Roseman的基础上的:

{%if form.errors%}
    {%if form.non_字段_错误%} {%表示表单中的错误。非\u字段\u错误%}
  • {{error | escape}
  • {%endfor%} {%endif%} {%形式的字段为%} {%if field.errors%}
  • {{field.name}
      {%字段中有错误。错误%}
    • {{error | escape}
    • {%endfor%}
  • {%endif%} {%endfor%}
{%endif%}
您可以在字段上循环并访问其错误:

{% for field in form %}
    {% field.errors %}
{% endfor %}
{% for field in form %}
    {% field.errors %}
{% endfor %}