如何使用字典在Flask中填充动态表单?

时间:2018-01-26 12:27:57

标签: python mongodb dictionary flask

我有动态表格:

class CollectionRequestParamForm(Form):
    param_human_name = StringField(validators=[DataRequired()])
    param_request_name = StringField()


class CollectionRequestParamCombinedForm(FlaskForm):
    params = FieldList(FormField(CollectionRequestParamForm), min_entries=1)
    submit = SubmitField('Submit')

用户发送表单后,我在我的收藏中添加这样的dict(我使用MongoDB):

example_form = {
    'Имя': 'name',
    'Возраст': 'age'
}

当然,如果需要我可以改变我的数据结构,例如:

example_form = [
    {'param_human_name': 'Имя', 'param_request_name': 'name'},
    {'param_human_name': 'Возраст', 'param_request_name': 'age'},
]

现在,我如何用我的dict中的数据填充表单?我累了:

collection_request_params_form = CollectionRequestParamCombinedForm()
i = 0
for key, value in example_form.items():
    collection_request_params_form.params.data[i]['param_human_name'] = key
    collection_request_params_form.params.data[i]['param_request_name'] = value
    ## Or...
    collection_request_params_form.data['params'][i]['param_human_name'] = key
    collection_request_params_form.data['params'][i]['param_request_name'] = value
    i += 1

这不起作用:(

我如何用dict填充表单?

P.S。对不起我的英语不好..关于俄罗斯stackoverflow社区的这个问题:This question on russian stackoverflow community with images

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以试试这个,我不确定这是否有效。

i=0
for ex in example_form:
  for key,value in ex.items():
    collection_request_params_form.params.data[i]['param_human_name'] = key
    collection_request_params_form.params.data[i]['param_request_name'] = value
     ## Or...
    collection_request_params_form.data['params'][i]['param_human_name'] = key
    collection_request_params_form.data['params'][i]['param_request_name'] = value
    i+=1

如果这不起作用,您能解释下一行的数据吗?

collection_request_params_form.params.data[i]['param_human_name'] = key