【发布时间】:2012-08-20 15:34:48
【问题描述】:
我们有以下表格,我们正在尝试为每个组创建GroupRoleForms 列表。
class FullNameMixIn():
full_name = TextField(
'Full name', [
validators.required(message=u"Full name is required")
])
class GroupRoleForm(Form):
group =BooleanField('Group', default=False)
role = SelectField(
'Role',choices=[
("none", "----------"),
('approver', 'Approver'),
('editor', 'Editor')
])
class AdminEditUserForm(Form, FullNameMixIn):
group_roles = FieldList(FormField(GroupRoleForm))
我们如何创建一个包含GroupRoleForms 预填充列表的AdminEditUserForm 实例?
目前我们正在尝试这样做:
form = forms.AdminEditUserForm()
for group in company.groups:
group_role_form = forms.GroupRoleForm()
group_role_form.group.label = group.name
group_role_form.group.name = group.id
form.group_roles.append_entry(group_role_form)
return dict(edit_user_form = form )
【问题讨论】:
-
你有没有想过解决这个问题?如果你这样做了,请发布你的解决方案
-
你想动态追加字段是吗?你知道 append_entry 没有得到 formdata。
-
很简单,通过添加一个初始化函数,就可以做到这一点。
-
我认为您的动态表单组合可能有点过头了。您只需将数据绑定到顶级表单对象即可达到预期效果,让 WTForms 完成工作。
-
我在这里创建了一个完整的工作示例:github.com/sebkouba/dynamic-flask-form