首页 > 解决方案 > 如何动态设置 WTForms FormField 的默认值?

问题描述

给定以下两种 WTF 形式:

class NestedForm(FlaskForm):
    note = StringField('Note', validators=[DataRequired()])
    some_id = StringField('Some ID', validators=[DataRequired()])

class Form(FlaskForm):
    id = HiddenField('ID')
    nested_forms = FieldList(
        FormField(NestedForm),
        min_entries=1,
    )

如何动态设置 的值some_id?例如,在 Flask 视图中,如果some_id没有提供值。

我尝试使用以下方法设置值:

form.nested_forms[0].some_id = "some_contextual_default_value"
form.nested_form[0].data['some_id'] = "some_contextual_default_value"

...这似乎没有做任何事情。表单验证继续失败,并显示一个错误,指出some_id缺少必填字段 ( )。

标签: python-3.xflaskflask-wtformswtforms

解决方案


使用data属性。

form.nested_forms[0].some_id.data = "some_contextual_default_value"

推荐阅读