选中字段的错误处理Django multiselectfield

时间:2019-06-12 23:29:56

标签: django validation django-multiselectfield

我有条件检查,需要查看某个复选框,并因此而需要多选字段。

我有类似的地方:

{% for value, text in form.customfield.field.choices %}
<div class="checkbox custom-control custom-checkbox list-inline-item" style="display:inline-flex;">
    <input type="checkbox" name="{{customfield.name}}" value="{{value}}" class="list-inline-item custom-control-input" title="" id="id_{{value}}"  {% if value in customfield.data %} checked="checked"{% endif %}>
    <label for="id_{{value}}" class="form-check-label custom-control-label mr-3">{{text}}</label>
</div>
{% endfor %}

有没有办法对此进行错误处理?我验证了我的form.is_valid()返回false,但是没有显示错误消息,就像输入/文本框一样。我假设我需要在模板中明确打印出特定错误,因为我没有使用 {{form.customfield}} < em> {{bootstrap_field}}

form.is_valid() 返回False。

form._errors 给我:

 <ul class="errorlist"><li>customfield<ul class="errorlist"><li>This field is required when the other field is checked.</li></ul>

1 个答案:

答案 0 :(得分:0)

Rant:与我问过的其他许多Django问题一样,我不得不发表自己的答案。结束兰特!

进行上述检查后,只需遍历字段。错误并显示错误 注意:invalid-feedback用于在Bootstrap4中隐藏/显示错误消息,因此

<div id="id_{{customfield.name}}" class="list-inline-item {% if customfield.errors %} is-invalid{% endif %}">
        {% for value, text in form.customfield.field.choices %}
        <div class="checkbox custom-control custom-checkbox list-inline-item">
            <input type="checkbox" name="{{customfield.name}}" value="{{value}}" class="list-inline-item custom-control-input" title="" id="id_{{value}}"  {% if value in customfield.data %} checked="checked"{% endif %}>
            <label for="id_{{value}}" class="form-check-label custom-control-label">{{text}}</label>
        </div>
        {% endfor %}
</div>

{% if customfield.errors %}
  <div class="invalid-feedback">
    {% for error in customfield.errors %} {{ error }} {% endfor %}
  </div>
{% endif %}