Boolean
小部件是WTForms中的一个复选框,而我希望在生成的表单中有一个yes/no下拉列表,而不是“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对象中,就像form.populate_obj(SQAItem())
(我可以在DB中看到表中存储了正确的值)。你知道吗
它不起作用的地方是以form = form_class(request.POST, sqa_item_instance)
的形式将SQA对象值读入这个小部件,其中sqa_item_instance
是从SQLAlchemy读取的,并且有一个bool字段。你知道吗
我怎样才能从SQA项中正确地得到“填充”表单SelectYesNo
字段呢?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐