我使用下面的代码来显示模板中forms.py中的错误:
{% for key, value in form.errors.items %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<strong>Error:</strong> {% if key != '__all__' %}{{ key|title }} {% endif %} - {{ value|striptags }}
</div>
{% endfor %}
但是我的项目是另一种语言,所以我不想显示字段名,而是标签名。
我需要这样的东西
{{ key.label|title }}
{% for key, value in form.errors.items %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<strong>Error:</strong> {% if key != '__all__' %}{{ key.label|title }} {% endif %} - {{ value|striptags }}
</div>
{% endfor %}
形式class MyForm(forms.ModelForm):
class Meta:
model = MedicalPatient
fields = {'name', ...
}
labels = {'name': '',
...'
}
如何显示标签名称而不是字段名称?
您可以遍历表单字段并从绑定字段本身访问标签和任何错误
{% for field in form.visible_fields %}
{% for error in field.errors %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<strong>Error:</strong>{{ field.label }} - {{ error }}
</div>
{% endfor }
{% endfor %}
这意味着你必须单独处理非字段错误
{% for error in form.non_field_errors %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<strong>Error:</strong>{{ error }}
</div>
{% endfor }
我认为假设字段错误通常呈现在它们对应的字段旁边,因此form.errors
字典非常简陋