使用Flask-WTF时,从字典中填充WTForms表单

rui*_*eco 2 python flask wtforms flask-wtforms

我有一个Flask-WTF表单,需要从字典中填充,我将其传入**kwargs.该表单用于使用该POST方法访问的Flask路径.表单未验证,字段的值为None.如何将数据字典传递给我的表单然后验证它?

@app.route('/submit', methods=['POST'])
def submit():
    data = {'name': 'eee'}
    form = MyForm(**data)
    print(form.validate())  # False, name is required
    print(form.name.data)  # None
Run Code Online (Sandbox Code Playgroud)

dav*_*ism 6

如果没有明确传递数据,Flask-WTF 会在路由发布时自动传递request.form.您需要将数据作为a传递MultiDict,以防止自动行为.传递obj,, data**kwargs仅设置默认值,在没有实际数据传递给表单时使用.

form = MyForm(MultiDict(data))
Run Code Online (Sandbox Code Playgroud)