我正在开发一个使用烧瓶,SQLAlchemy和WTForms的网络应用程序。我希望通过我的数据库从查询中获得SelectField中的选择。
还有更多细节。
my_query = my_table.query.with_entities(My_Entities).all()结果
(u'1',),(u'2',),(u'3',)
我的课
class MyForm(Form):
My_Var = SelectField(choices=RIGHT_HERE)有办法吗?
发布于 2016-02-10 18:02:03
在这种情况下,您可以做的是使用WTForms中的扩展。您要做的是导入所需的QuerySelectField:
from wtforms.ext.sqlalchemy.fields import QuerySelectField
然后创建一个函数,它将查询数据库并返回所需的内容:
def skill_level_choices():
return db.session.query(SkillLevel).all()拥有查询对象之后,可以使用QuerySelectField参数将其放置到query_factory中。
skill_level = QuerySelectField(u'Skill level',
validators=[Required()],
query_factory=skill_level_choices)发布于 2020-02-19 21:39:27
用数据库中的值填充QuerySelectField
from wtforms.ext.sqlalchemy.fields import QuerySelectField
from flask_sqlalchemy import SQLAlchemy
name=QuerySelectField('Name',query_factory=lambda:my_table.query,get_label="username")发布于 2020-07-02 20:33:51
解决方案:
我在wtforms和peewee上遇到了非常简单的问题,这是我的解决办法
class MyForm(FlaskForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.my_select_field.choices = [
(el.id, el.description) for el in MyModel.select()
]
my_select_field = SelectField("Field", coerce=int)解释:
我们修改了原始FlaskForm,使其每次创建数据库查询时都执行数据库查询。
因此,MyForm数据选择保持最新。
https://stackoverflow.com/questions/35314102
复制相似问题