我正在学习一本过时的django教程,但是它是高质量的材料,所以我坚持使用它。
在表单控件的此段中,当出现非字段错误时,字段不会呈现。
链接到我正在关注的教程:https://simpleisbetterthancomplex.com/series/2017/09/25/a-complete-beginners-guide-to-django-part-4.html
{% load widget_tweaks %}
{% if form.non_field_errors %}
<div class="alert alert-danger" role="alert">
{% for error in form.non_field_errors %}
<p{% if forloop.last %} class="mb-0"{% endif %}>{{ error }}</p>
{% endfor %}
</div>
{% endif %}
{% for field in form %}
<div class="form-group">
{{ field.label_tag }}
{% if form.is_bound %}
{% if field.errors %}
{% render_field field class="form-control is-invalid" %}
{% for error in field.errors %}
<div class="invalid-feedback">
{{ error }}
</div>
{% endfor %}
{% endif %}
{% else %}
{% render_field field class="form-control is-valid" %}
{% endif %}
{% if field.help_text %}
<small class="form-text text-muted">
{{ field.help_text|safe }}
</small>
{% endif %}
</div>
{% endfor %}
预期: 输入无效的用户名/密码时,错误消息会弹出,并且所有字段都显示在下方
实际: 输入无效的用户名/密码时,错误消息会弹出,但所有字段都不会呈现。
编辑: 我不确定我是否只是在本教程中错过了这一点,还是不确定他是否将其遗漏了,但是我通过在“ if field.errors”中添加else语句解决了该问题:
{% else %}
{% render_field field class="form-control" %}