【问题标题】:Django Formset field label in error messages错误消息中的 Django Formset 字段标签
【发布时间】:2019-09-23 17:41:16
【问题描述】:

是否有一种简单的方法可以在 Django 表单集的错误消息中获取字段标签。我可以像这样以正常的形式做到这一点:

{% if form.errors %}
    {% for field in form %}
        {% for error in field.errors %}
            <div class="alert alert-danger">
                <strong>{{ field.label }}: {{ 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 %}    

但是,我希望表单集也能做到这一点。我得到的最接近的是

{% if formset.errors %}
    {% for dict in formset.errors %}
        {% for field, error in dict.items %}
              <div class="alert alert-danger">
                  <strong>{{ field }}: {{ error|escape }}</strong>
              </div>
        {% endfor %}
    {% endfor %}
    {% endfor %}
    {% for error in formset.non_field_errors %}
        <div class="alert alert-danger">
            <strong>{{ error|escape }}</strong>
        </div>
    {% endfor %}
{% endif %}    

但是,这给了我字段名称(例如pub_date)而不是标签(例如发布日期)。非常感谢任何帮助!

【问题讨论】:

    标签: django django-forms django-templates django-errors


    【解决方案1】:

    我看不到从字段字符串到模板中的字段实例的简单方法,因此您可能必须迭代表单和字段而不是 formset.errors

    {% if formset.errors %}
        {% for form in formset %}
            {% for field in form %}
                {% if field.errors %}
                    <div class="alert alert-danger">
                        <strong>{{ field.label }}: {{ field.errors|escape }}</strong>
                    </div>
                {% endif %}
            {% endfor %}
        {% endfor %}
        {% for error in formset.non_field_errors %}
            <div class="alert alert-danger">
                <strong>{{ error|escape }}</strong>
            </div>
        {% endfor %}
    {% endif %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-01
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多