Python 烧瓶选择字段-不是有效的选择

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') 以及我的模板中的以

我在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')
以及我的模板中的以下代码

    <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>