在选择上设置默认值会删除传入的设置以填充表单

时间:2015-02-20 01:29:08

标签: python flask wtforms flask-wtforms

此代码可以单独使用。我的意思是当我设置默认tag并调用process()时,应删除应填充表单的所有其他数据。在这种情况下,默认值为ok,但其他字段为空。

form = ReviewForm(**populate_form)
form.tags.default = '1'
form.process()

因此,似乎process清除**populate_form值。我需要填充所有字段,然后设置选择的默认值。

1 个答案:

答案 0 :(得分:0)

来自WTForms Documentation

  

由于BaseForm在实例化时不会获取其数据,因此必须调用此方法以向封闭的字段提供表单数据。不建议在调用进程之前访问字段的数据。

Form子类允许您将对象作为kwargs传递,您在此处执行此操作。但是,looking at the source,看起来这里发生的事情是__init__正在调用process来处理字段,所以我认为有一些重点在继续。

在任何情况下,我认为这里缺少的是默认值应该在定义时定义,而不是在实例化之后定义。看看the construction以及this answer,我认为这样可以解决问题。