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

时间:2016-05-09 20:27:11

标签: 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

2 个答案:

答案 0 :(得分:6)

如果没有明确传递数据,

Flask-WTF automatically在路由发布时传递request.form。您需要将数据作为MultiDict传递,以防止自动行为。传递objdata**kwargs,只会设置默认值,如果没有真实数据传递给表单,则为only used

form = MyForm(MultiDict(data))

答案 1 :(得分:-2)

您必须为构造函数使用数据参数。您还可以查看documentation

  form = MyForm(data=data)