我正在从我的数据库中动态创建我的wtforms。
def create_form_field_class(fields):
form_fields = {}
for i in fields:
field_id = i.name
form_fields[field_id] = TextField(label=i.label, validators=[Optional()])
return type('Form', (Form,), form_fields)
目前,所有字段类型都是" TextField"。由于我也有我的数据库中存储的字段类型(BooleanField,TextAreaField等...),我还想动态设置它。
form_fields[field_id] = ???i.type???(label=i.label, validators=[Optional()])
必须有一个快速的方法来做到这一点。
答案 0 :(得分:0)
好的,我解决这个问题的方式是。
import wtforms
def create_form_field_class(fields):
form_fields = {}
for i in fields:
field_id = i.name
form_fields[field_id] = getattr(wtforms, str(i.type))(label=i.label, validators=[Optional()])
return type('Form', (Form,), form_fields)
我想知道是否有更好的方法。