Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Flask WTF在for循环中渲染字段错误_Python_Validation_Flask_Wtforms_Flask Wtforms - Fatal编程技术网

Python 使用Flask WTF在for循环中渲染字段错误

Python 使用Flask WTF在for循环中渲染字段错误,python,validation,flask,wtforms,flask-wtforms,Python,Validation,Flask,Wtforms,Flask Wtforms,我希望迭代模板中的表单字段,并显示出现以下错误的字段: {{ 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') }}<

我希望迭代模板中的表单字段,并显示出现以下错误的字段:

 {{ 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 %}
{{form.hidden_tag()}
{%if field.widget.input_type!=“hidden”}
{%if form.errors.field%}
{{field.label}{{field(size=80,class='form-control')}
{{form.errors.field.0}
{%else%}
{{field.label}{{field(size=80,class='form-control')}
{%endif%}
{%endfor%}
但由于某些原因,这不起作用-表单呈现,但错误不会显示

我已经检查了解决方案,但没有一个有效


是否有人可以建议如何修复我的表单以正确呈现错误?

问题在于使用
form.errors.field
。只有在jinja中有一个名为
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()}
{%if field.widget.input_type!=“hidden”}
{%if field.errors%}
{{field.label}{{field(size=80,class='form-control')}
{%for field.errors%}{{error}{%if not loop.last%}
{%endif%}{%endif%}{%endfor%} {%else%} {{field.label}{{field(size=80,class='form-control')} {%endif%} {%endfor%}
问题在于使用
表单.errors.field
。只有在jinja中有一个名为
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()}
{%if field.widget.input_type!=“hidden”}
{%if field.errors%}
{{field.label}{{field(size=80,class='form-control')}
{%for field.errors%}{{error}{%if not loop.last%}
{%endif%}{%endif%}{%endfor%} {%else%} {{field.label}{{field(size=80,class='form-control')} {%endif%} {%endfor%}
问题在于使用
表单.errors.field
。只有在jinja中有一个名为
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()}
{%if field.widget.input_type!=“hidden”}
{%if field.errors%}
{{field.label}{{field(size=80,class='form-control')}
{%for field.errors%}{{error}{%if not loop.last%}
{%endif%}{%endif%}{%endfor%} {%else%} {{field.label}{{field(size=80,class='form-control')} {%endif%} {%endfor%}
问题在于使用
表单.errors.field
。只有在jinja中有一个名为
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()}
{%if field.widget.input_type!=“hidden”}
{%if field.errors%}
{{field.label}{{field(size=80,class='form-control')}
{%for field.errors%}{{error}{%if not loop.last%}
{%endif%}{%endif%}{%endfor%} {%else%} {{field.label}{{field(size=80,class='form-control')} {%endif%} {%endfor%}