Python Flask WTForms SelectField(键,标签):如何从标签中检索数据?

问题描述 投票:0回答:0

我想使用标签数据(在我的例子中是一个唯一的字符串)来过滤我的数据库。

form.motherboard.choices = [(g.chipset, g.name) for g in Motherboard.query.all()]
form.processor.choices = [(processor.name, processor.name) for processor in Processor.query.filter_by(company='Intel')]

我为主板和处理器创建了动态选择字段,其中处理器的选择取决于主板的选择(如果主板的芯片组是 Intel,则处理器没有 AMD 选项)。

选择字段采用

choices
参数,该参数是
(value, label)
对的列表 我的表单代码:

motherboard = SelectField('Motherboard',coerce=str, choices=[])
processor = SelectField('Processor', choices=[], coerce=str)

问题是,当我尝试使用

form.motherboard.data
查询我的数据库以添加价格

Motherboard.query.filter_by(name=form.motherboard.data).first().price

form.motherboard.data
是Intel或AMD有价值的芯片组,它们不是主板的名称。我想从选择字段中的元组
g.name
中检索标签数据
(g.chipset, g.name)
,并用它来查询我的主板数据库以获取所选主板的价格。

任何想法如何使用

label
中的
(value, label)
数据而不是
value
数据?

python flask flask-sqlalchemy flask-wtforms
© www.soinside.com 2019 - 2024. All rights reserved.