You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板中如何分离显示字段错误与非字段错误?

如何在Django模板中分别展示表单的非字段错误与字段错误?

你说得对,直接用{{ form.errors }}会把非字段错误和字段错误混在一起,而且Django模板确实没法直接访问__all__这种以下划线开头的字典键,所以你之前的遍历方法行不通。不过其实Django已经内置了更直观的方式来分别处理这两类错误,完全不用绕这种弯路。

这里有个清晰的实现方案,能把非字段错误(比如表单级别的验证错误)和各个字段的错误分开展示:

{% 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 %}

代码说明:

  • 首先判断form.errors是否存在,避免渲染空的错误提示容器
  • form.non_field_errors就是对应你之前想获取的form.errors['__all__']的内容,直接循环输出就能单独展示表单级别的全局错误
  • 接着遍历表单的每个字段,检查每个字段是否有错误,有的话就带着字段名一起展示字段级错误,结构层级更清晰,用户能一眼看出是哪个字段出了问题

内容的提问来源于stack exchange,提问作者Leonardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:15:42