Boolean
小部件是WTForms中的一个复选框,而我希望有一个是/否下拉菜单而不是" true / false"生成形式的选择。
这个自定义小部件几乎可以工作:
class SelectYesNo(SelectField):
def __init__(self, *args, **kwargs):
kwargs['choices'] = [('Yes', 'Yes'), ('No', 'No')]
super(SelectYesNo, self).__init__(*args, **kwargs)
def process_formdata(self, valuelist):
if valuelist:
try:
self.data = False
if valuelist[0] == 'Yes':
self.data = True
except ValueError:
raise ValueError(u'Invalid Choice: could not coerce (valuelist: {0})'.format(valuelist))
def pre_validate(self, form):
pass
现在,当我在表单上使用.populate_obj
方法时,工作,也就是说,它正确地将bool
存储在SQLAlchemy对象中,如{{1 (我可以在DB中看到正确的值已存储在表中)。
不工作的地方是将SQA对象值读入表单中的此窗口小部件,如form.populate_obj(SQAItem())
,其中form = form_class(request.POST, sqa_item_instance)
已从SQLAlchemy读取并具有bool字段
我怎样才能做到这一点,即"填充"从SQA项目中正确填写sqa_item_instance
字段?