我想使用标签数据(在我的例子中是一个唯一的字符串)来过滤我的数据库。
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
数据?