wtforms动态选择字段弹出保存的对象数据的默认值

时间:2016-12-02 03:46:03

标签: python flask wtforms flask-wtforms

我正在尝试使用具有select字段的表单更新对象。 选择字段选择在路线中确定。这使得新的选择覆盖了保存的数据。

我想填充选择字段,然后根据用户选择默认的第一选择。

这是我到目前为止的代码。

def approve_seller(seller_id):
    obj_to_edit = model.query.get(seller_id)
    form = AForm(request.form,obj=obj_to_edit)
    choices = [("", "---")]
    for s in State.query.all():
        choices.append((str(s.id), s.name))
    form.state.choices = choices

此代码会生成状态列表。不是具有值用户先前保存为所选选项的状态列表。

2 个答案:

答案 0 :(得分:2)

您可以参考此thread获取答案。

对于您的情况,有两种方式

form.state.default = <state_id> # eg.'CA'
form.process()

或者

form.state.data = <state_id> # eg. 'FL'

无论哪种方式都有效。

答案 1 :(得分:1)

If you want to set the default selected option when rendering the form, you need to set the data attribute:

form.state.data = state_id