我目前正在使用 WTFORMS 创建一个动态选择字段,但是它从不提交并且验证失败并出现以下错误。
Not a valid choice
我的字段是这样创建的:
area = SelectField()
在视图中,我像这样从数据库中获取选项:
form = MytestForm()
form.area.choices = [(a.id, a.name) for a in Area.objects.all()]
但是,如果我创建静态选项,它会起作用。
原文由 ismail 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的猜测是
Area.id
是一个int
当数据从客户端返回时,它被 WTForms 视为 _字符串_,除非将可调用对象传递给coerce
wtforms.fields.SelectField
构造函数的关键字参数:或者,如果您使用的是 SQLAlchemy,则可以使用
wtforms.ext.sqlalchemy.fields.QuerySelectField
(wtforms_sqlalchemy
如果您使用的是 WTForms 3+):