Python 烧瓶选择字段-不是有效的选择
我在form.py中有以下代码Python 烧瓶选择字段-不是有效的选择,python,flask,flask-wtforms,Python,Flask,Flask Wtforms,我在form.py中有以下代码 OPTIONS = ['Option1', 'Option2', 'Option3'] class Test_Form(Form): test = SelectField('Dropdown', coerce= str, choices=[(f, f) for f in OPTIONS]) submit = SubmitField('Submit') 以及我的模板中的以
OPTIONS = ['Option1', 'Option2', 'Option3']
class Test_Form(Form):
test = SelectField('Dropdown', coerce= str,
choices=[(f, f) for f in OPTIONS])
submit = SubmitField('Submit')
以及我的模板中的以下代码
<div class = "control-group">
<label class="control-label">
{{ form.test.label }} </label>
{% if form.test.errors %}
{% for error in form.test.errors %}
<p class="error-message"> {{ error }}</p>
{% endfor %}
{% endif %}
<div class="controls">
<select name=form.test.label width="80px">
{% for i,j in form.test.choices %}
<option value = {{ i }} > {{ j }} </option>
{% endfor %}
</select>
</div>
</div>
每次提交表格时,我都会得到一个“无效选择”。我仔细阅读了前面关于SO的问题,并尝试了
concure=str
,但仍然得到了相同的信息。我在这里遗漏了什么?我尝试了你的代码,它在我这方面非常有效。但是我唯一改变的是你的模板代码,因为你的模板代码不完整。它没有提交按钮,也没有标签声明。
这是我使用的模板代码:
<form action="" method='post'>
{{ form.hidden_tag() }}
<ul class="request_form">
{%if form.errors%}
Please correct the following fields:
{%for each in form.errors%}
<br>{{each}}
{%endfor%}
{%endif%}
{%for each in form%}
{%if each.name != "csrf_token" and each.name!="submit"%}
<li>
<label>{{each.name}}</label>
{{each()}}
</li>
{%endif%}
{%endfor%}
<li/>{{form.submit}}
</ul>
</form>
{{form.hidden_tag()}}
{%if form.errors%}
请更正以下字段:
{form.errors%}
{{each}}
{%endfor%}
{%endif%}
{表格%中的每一个都为%1}
{%if each.name!=“csrf_令牌”和each.name!=“提交”%}
-
{{each.name}
{{each()}}
{%endif%}
{%endfor%}
{{form.submit}
另外,在您看来,您正在检查logs\u form.validate()
何时应该是my\u form.validate()
我希望这能解决你的问题
<form action="" method='post'>
{{ form.hidden_tag() }}
<ul class="request_form">
{%if form.errors%}
Please correct the following fields:
{%for each in form.errors%}
<br>{{each}}
{%endfor%}
{%endif%}
{%for each in form%}
{%if each.name != "csrf_token" and each.name!="submit"%}
<li>
<label>{{each.name}}</label>
{{each()}}
</li>
{%endif%}
{%endfor%}
<li/>{{form.submit}}
</ul>
</form>