使用 Flask-WTF 在 for 循环中渲染字段错误
Render field errors in for loop with Flask-WTF
我想遍历模板中的表单字段并显示带有如下错误的字段:
{{ form.hidden_tag() }}
{% for field in form if field.widget.input_type != 'hidden' %}
{% if form.errors.field %}
<div class="has-error"> {{ field.label }} {{ field(size=80, class_='form-control') }}</div>
<span style="color: red;">{{ form.errors.field.0 }}</span>
{% else %}
{{ field.label }} {{ field(size=80, class_='form-control') }}
{% endif %}
{% endfor %}
但由于某些原因这不起作用 - 表单呈现但未显示错误。
我已经检查了解决方案 here, and here, and also here,其中 none 有帮助。
有人可以告诉我如何修复我的表单以正确呈现错误吗?
问题在于使用 form.errors.field
。如果您有一个名为 field
的字段而不是任何其他名称,那么这在神社中才准确。
幸运的是,您已经在迭代字段,并且每个字段都有一个 .errors
属性 所以最短的解决方案是简单地使用 属性
您的代码应该类似于:
{{ form.hidden_tag() }}
{% for field in form if field.widget.input_type != 'hidden' %}
{% if field.errors %}
<div class="has-error"> {{ field.label }} {{ field(size=80, class_='form-control') }}</div>
<span style="color: red;">{% for error in field.errors %}{{ error }}{% if not loop.last %}<br />{% endif %}{% endfor %}</span>
{% else %}
{{ field.label }} {{ field(size=80, class_='form-control') }}
{% endif %}
{% endfor %}
我想遍历模板中的表单字段并显示带有如下错误的字段:
{{ form.hidden_tag() }}
{% for field in form if field.widget.input_type != 'hidden' %}
{% if form.errors.field %}
<div class="has-error"> {{ field.label }} {{ field(size=80, class_='form-control') }}</div>
<span style="color: red;">{{ form.errors.field.0 }}</span>
{% else %}
{{ field.label }} {{ field(size=80, class_='form-control') }}
{% endif %}
{% endfor %}
但由于某些原因这不起作用 - 表单呈现但未显示错误。
我已经检查了解决方案 here, and here, and also here,其中 none 有帮助。
有人可以告诉我如何修复我的表单以正确呈现错误吗?
问题在于使用 form.errors.field
。如果您有一个名为 field
的字段而不是任何其他名称,那么这在神社中才准确。
幸运的是,您已经在迭代字段,并且每个字段都有一个 .errors
属性 所以最短的解决方案是简单地使用 属性
您的代码应该类似于:
{{ form.hidden_tag() }}
{% for field in form if field.widget.input_type != 'hidden' %}
{% if field.errors %}
<div class="has-error"> {{ field.label }} {{ field(size=80, class_='form-control') }}</div>
<span style="color: red;">{% for error in field.errors %}{{ error }}{% if not loop.last %}<br />{% endif %}{% endfor %}</span>
{% else %}
{{ field.label }} {{ field(size=80, class_='form-control') }}
{% endif %}
{% endfor %}