如何修改Django form.errors显示内容?移除错误关联字段名
如何在Django模板中只显示表单错误消息(隐藏字段名)
你当前用来展示表单错误的代码会连带字段名一起输出:
{% if form.errors %} <div class="alert alert-warning alert-dismissible fade show" role="alert"> <p class="m-0">{{ form.errors }}</p> <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"> </button> </div> {% endif %}
要只保留错误消息、去掉字段名,有两种简单的实现方式:
方式一:遍历字段提取错误
逐个遍历表单的每个字段,直接输出字段对应的错误消息,同时兼顾表单级的非字段错误:
{% if form.errors %} <div class="alert alert-warning alert-dismissible fade show" role="alert"> <!-- 遍历每个字段的错误 --> {% for field in form %} {% for error in field.errors %} <p class="m-0">{{ error }}</p> {% endfor %} {% endfor %} <!-- 处理不属于单个字段的表单级错误 --> {% for error in form.non_field_errors %} <p class="m-0">{{ error }}</p> {% endfor %} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"> </button> </div> {% endif %}
方式二:直接提取所有错误消息集合
通过form.errors.values()获取所有字段的错误列表,遍历输出纯错误内容:
{% if form.errors %} <div class="alert alert-warning alert-dismissible fade show" role="alert"> <!-- 遍历所有字段的错误消息 --> {% for error_list in form.errors.values %} {% for error in error_list %} <p class="m-0">{{ error }}</p> {% endfor %} {% endfor %} <!-- 同样处理非字段错误 --> {% for error in form.non_field_errors %} <p class="m-0">{{ error }}</p> {% endfor %} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"> </button> </div> {% endif %}
两种方式都能完美去掉字段名,只显示错误消息本身,同时不会漏掉任何类型的表单错误。
内容的提问来源于stack exchange,提问作者bld-sync
相关产品推荐
相关产品推荐

