我在使用WTForms创建动态RadioField时遇到问题...
当我尝试基本示例时:
targeting_type = RadioField('Label', choices=[('value', 'description'),
('value_two', 'whatever')])
一切正常。
当我尝试使用此示例时: Flask-SQLAlchemy wtform based on db
的形式是来自DB的值。但是,当我单击“提交”按钮时,页面被“重新加载”,但可能“没有数据”。
我的views.py示例:
form = TargetingTypeForm()
form.targeting_type.choices = [
(targeting_type.id, targeting_type.name)
for targeting_type in SettingsTargetingType.query.all()]
if form.validate_on_submit():
print('test', form.targeting_type.data)
提交此表单后,未打印测试数据:/
请问用WTForms + SQLAlchemy查询创建RadioField的正确方法是什么?
谢谢您的回答。
答案 0 :(得分:1)
由于您使用ID作为值,并且我猜它是整数,因此您必须在coerse
上使用RadioField
属性!
尝试一下:
form = TargetingTypeForm()
form.targeting_type.choices = [
(targeting_type.id, targeting_type.name)
for targeting_type in SettingsTargetingType.query.all()]
form.targeting_type.coerse = int
if form.validate_on_submit():
print('test', form.targeting_type.data)
或将coerse=int
添加到targeting_type
类的TargetingTypeForm
定义中