【发布时间】:2018-04-09 11:49:50
【问题描述】:
我正在尝试从 SQLAlchemy DB 动态创建 WTForm SelectField 条目,如 here 所示,但它似乎在每个选择元组的第一部分执行 repr() 或 str(),这应该是 User 对象.我刚刚发现 QuerySelectField 但 wtforms.ext.* 软件包已被弃用。
class ChangeAccountForm(FlaskForm):
def __init__(self, *args, **kwargs):
# Queries user database and sets user choices
super(ChangeAccountForm, self).__init__(*args, **kwargs)
self.user.choices = [(i, i.username) for i in User.query.all()]
user = SelectField('Gebruiker', validators=[Optional()])
【问题讨论】:
-
是否有理由需要在渲染模板中使用整个 User 对象?通常,您可以使用 user.id(如您链接的答案)字段并在表单发布后使用该值查询您的数据库。
-
@Maarten 不是真的,它只是更优雅。
标签: flask wtforms flask-wtforms