【发布时间】:2018-11-21 04:58:39
【问题描述】:
我借用了一个验证器,如果另一个字段的值为某个值,则要求用户输入数据:
class RequiredIf(object):
def __init__(self, *args, **kwargs):
self.conditions = kwargs
def __call__(self, form, field):
for name, data in self.conditions.items():
if name not in form._fields:
Optional(form, field)
else:
condition_field = form._fields.get(name)
if condition_field.data == data and not field.data:
DataRequired()(form, field)
Optional()(form, field)
当包含validator 参数的字段是TextField 时,这非常有效,但当字段是RadioField 时,它似乎不起作用。如何调整验证器以便它也适用于 RadioFields?
就目前而言,无论验证条件是否适用,总是为 RadioField 返回not a valid choice。
提前致谢。
例如:
class new_form(Form):
code=BooleanField('Do you code?')
code2=RadioField('If so, what languages do you use?',
choices=[('python','python'),('C++','C++')],
validators=[RequiredIf(code=1)])
无论是否检查 BooleanField code,this is not a valid choice 始终为 code2 返回。我想要一个验证器,它需要任何类型的字段(包括 RadioField)的输入,以另一个字段的值为条件(在这种情况下为code=1)。
【问题讨论】:
标签: validation flask radio-button flask-wtforms wtforms