我的模板中有此标签,我只想显示用户名错误而不是所有表单错误
{% for field in form %}
{% for error in field.errors %}
<div class="row">
<div class="small-12 columns val-error-msg error margin-below">
{{ error }}
</div>
</div>
{% endfor %}
{% endfor %}
答案 0 :(得分:3)
您可以使用form.field_name.errors
喜欢:
{% if form.username.errors %}
{{form.username.errors}}
# or
# {{form.username.errors.as_text}}
# this will remove the `<ul></ul>` tag that django generates by default
{% endif %}
答案 1 :(得分:2)
每个字段都附加了.errors
。但请注意,每个字段都可能包含多个错误(例如,密码可能太短,和包含非法符号)。
您可以通过{{ form.field.errors }}
访问这些错误,但是您已经获得了这些元素。如果您想在模板中过滤仅显示错误(例如,username
字段),则可以使用{% if ... %}
语句:
{% for field in form %}
{% if field.name == "username" %}
{% for error in field.errors %}
<div class="row">
<div class="small-12 columns val-error-msg error margin-below">
{{ error }}
</div>
</div>
{% endfor %}
{% endif %}
{% endfor %}