如何解决设置RadioField默认值会阻止执行form.validate_on_submit
我正在尝试根据模型检索的数据设置RadioField
的默认值。
例如,我有一个Person
模型,其中一个idgender
字段与包含idgender
和gender
字段的Gender模型相关联(即:1: Male
,2: Female
)。
我创建了一个表单,其中包含RadioFields
的列表,每个列表都包含性别:
class People(FlaskForm):
genders = RadioField('Genders',coerce=int)
submit = SubmitField('Submit')
然后,在routes.js
中,我加载一个Person
实例并填充gender
RadioField:
person = Person.query.get(idperson)
genders = Gender.query.all()
form = PersonForm()
form.gender.choices = [(c.idgender,c.gender) for c in genders]
form.gender.default = person.idgender
form.validate_on_submit():
person.gender = form.gender.data
db.session.merge(person)
db.session.commit()
这显示了RadioField
的性别列表,但未选择任何。如果我选择一种性别并单击Submit
,则该值已正确存储在数据库中。
要预先选择性别,我尝试添加以下内容:
form.gender.default = person.idgender
就在form.validate_on_submit():
之前。当我这样做时,正确选择了性别,但是form.validate_on_submit():
下面的代码从未执行,因此,数据库中没有任何存储。
有人知道为什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。