Django,遍历所有表单错误

时间:2010-03-17 13:26:26

标签: django django-forms

在我的模板中,我想迭代所有表单错误,包括那些不属于特定字段的错误。 (这意味着对于form.errors,它也应该显示__all__错误)

我尝试了几个版本,即:

 <div id="msg">
  {% if form.errors %}
  <div class="error">
   <p><span>ERROR</span></p>
   <ul>
   {% for key,value in form.errors %}
    {% for error in value %}
     <li>{{ error }}</li>
    {% endfor %}
   {% endfor %}
   </ul>
  </div>
  {% endif %}
 </div>

仍然没有成就,我会很高兴任何建议。

2 个答案:

答案 0 :(得分:33)

Django中的表单错误是作为ErrorDict实例实现的(它只是dict的子类,有额外的)。尝试稍微调整模板的循环语法:

{% for key, value in form.errors.items %}

答案 1 :(得分:16)

您是否有机会寻找form.non_field_errors?这就是您如何访问与特定字段无关的错误。

{% if form.non_field_errors %}
<ul>
    {{ form.non_field_errors.as_ul }}
</ul>
{% endif %}

另请查看forms.py test suite以获取其他示例。搜索form.non_field_errors