字段选择选项给出无效选择错误
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}}
我认为您生成的选项列表有误。尝试将列表保存在变量中,然后将其传递给您的表单。
我正在尝试 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}}
我认为您生成的选项列表有误。尝试将列表保存在变量中,然后将其传递给您的表单。