字段选择选项给出无效选择错误

Field selected option giving invalid choices error

我正在尝试 select 一个产品列,其中包含从数据库 table 中获取的选项。我想要那个用户 select 前面的产品和更新详细信息,并且也应该在数据库中更新。

但是在提交表单时,抛出错误:

{'Product': ['Not a valid choice']}

我的验证在这里进行:

if form.validate_on_submit():
   
        sku=str(form.Product.data)
        SKU=Product.query.filter_by(Product=sku).update({Rate:f'form.Rate.data',Tax:f'form.Tax.data',Extra:f'form.Extra.data',})
        db.session.commit()
        flash(f'Data updated for {form.Product.data}!','success')
        return redirect(url_for('/'))
        print(form.errors)
    else:
        print(form.errors)
        flash(f'Data not updated for {form.Product.data}','danger')
        
    return render_template('index.html',form=form, choices=choices)

HTML 模板如下所示:

<select name="Product" id="Product">
    {% for choice in choices %}
    <OPTION name="Product" value="{{choice}}">
         {{choice}}
   </option>
    {% endfor %}
</select>

我不知道该怎么做,因为我是 Flask 和 Flask-SQLAlchemy 的新手。

任何帮助将不胜感激:)

实例化表单后,我认为您需要将 choices 的值设置为表单的属性,即

form.Product.choices = ['Choice 1', 'Choice 2', 'Choice 3']

我认为这将解决您的 'Not a valid choice' 错误。此外,这样您就不需要将 choices 作为单独的参数传递给 html 模板。当你呈现你的表单时,你可以简单地做:

{{form.Product.label}}
{{form.Product}}

我认为您生成的选项列表有误。尝试将列表保存在变量中,然后将其传递给您的表单。