我想知道如何在每个字段下显示表单错误。考虑到我有登录表单,如果用户名出现问题,则应显示特定错误,否则如果密码有问题,则应在密码字段下显示错误。 我一直在寻找一种合适的方法,这就是我带来的:
<div class="jumbotron">
<form class="login" method="POST">
{% csrf_token %}
<h4>Log In</h4>
<p class="field">{{ form.username }}</p>
<p class="field">{{ form.password }}</p>
<button class="btn btn-default" type="submit">Log In</button>
{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
</form>
</div>
&#13;
答案 0 :(得分:2)
养成循环表单的习惯是一种很好的做法,这样您就可以为所有表单编写通用模板。所以我就像这样;
<div class="jumbotron">
<form class="login" method="POST">
{% csrf_token %}
<h4>Log In</h4>
{% if form.non_field_errors %}
{% for error in form.non_field_errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
{{ field.label_tag }}
<p class="field">{{ field }}</p>
{% if field.help_text %}
<p class="help">{{ field.help_text }}</p>
{% endif %}
{% if field.errors %}
{{ field.errors }} {# outputs a UL with class 'errorlist' #}
{% endif %}
{% endfor %}
<button class="btn btn-default" type="submit">Log In</button>
</form>
</div>
然后,您可以将该表单包含在模板和模板中。将它包含在您想要的任何提交/取消按钮中。
答案 1 :(得分:0)
试试这个:)
<div class="jumbotron">
<form class="login" method="POST">
{% csrf_token %}
<h4>Log In</h4>
<p class="field">{{ form.username }}
{{ form.username.errors }}
</p>
<p class="field">{{ form.password }}
{{ form.password.errors }}
</p>
<button class="btn btn-default" type="submit">Log In</button>
</form>
</div>