当存在非字段错误时,为什么字段不呈现?

时间:2019-06-20 20:05:26

标签: django-forms

我正在学习一本过时的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" %}

0 个答案:

没有答案