我有以下内容:
{% if formDetails.errors %}
{% for key, value in formDetails.errors.items %}
{% for error in value %}
<div class="ui-widget" id="id-error">
<div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
<p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
<strong>{{ key }}:</strong> {{ error }}</p>
</div>
</div>
{% endfor %}
{% endfor %}
但不幸的是key
给了我模型字段的名称(带有下划线的小写字母)。我怎样才能看到像field.label_tag
这样漂亮的名字?
答案 0 :(得分:5)
form.errors
模板变量是一个列表而不是字典,因此您应该按如下方式访问它:
{% for error in form.errors %}
<li>{{ error }}</li>
{% endfor %}
此外,它包含clean()
方法在您正在处理的Form
对象上引发的表单范围错误。各个字段引发的验证错误可以这样访问:
{% for field in form %}
{% for error in field.errors %}
{{ error }}
{% endfor %}
{{ field.label_tag }}
{% endfor %}
阅读this part of the Django docs,您似乎无法完全了解访问表单时的内容。