【问题标题】:Populate WTForms form from dictionary when using Flask-WTF使用 Flask-WTF 时从字典中填充 WTForms 表单
【发布时间】:2016-05-09 20:27:11
【问题描述】:

我有一个需要从字典中填充的 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

【问题讨论】:

    标签: python flask wtforms flask-wtforms


    【解决方案1】:

    Flask-WTF automatically 在路由发布到时传递 request.form,如果没有明确传递数据。您需要以MultiDict 的形式传递您的数据,以防止自动行为。传递objdata**kwargs,仅设置默认值,如果没有实际数据传递给表单,则为only used

    form = MyForm(MultiDict(data))
    

    【讨论】:

      【解决方案2】:

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

        form = MyForm(data=data)
      

      【讨论】:

      • 我试过 data= 并没有用。 'name' 从未设置过。
      猜你喜欢
      • 2016-06-23
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 2013-05-21
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多