在WTForms中,如果另一个字段为空,如何使其成为可选的必填字段?
我有两个字段,用户可以选择一个输入,但不能同时输入两个字段,也不能同时跳过两个字段在WTForms中,如果另一个字段为空,如何使其成为可选的必填字段?,forms,validation,flask-wtforms,wtforms,Forms,Validation,Flask Wtforms,Wtforms,我有两个字段,用户可以选择一个输入,但不能同时输入两个字段,也不能同时跳过两个字段required()使他们不能跳过一个,而Optional()让他们跳过两个 我只能找到一个例子,当您填写一个字段时,您希望另一个字段是必填字段,但我不知道如何将其修改为我的案例,因为该示例继承了一个Required()验证器,这使这两个字段都是必填字段 下面是我找到的例子。有人知道我现在所描述的是不是有一种本地方式,或者知道如何修改它以适应我的情况吗 class RequiredIf(Required):
required()
使他们不能跳过一个,而Optional()
让他们跳过两个
我只能找到一个例子,当您填写一个字段时,您希望另一个字段是必填字段,但我不知道如何将其修改为我的案例,因为该示例继承了一个Required()
验证器,这使这两个字段都是必填字段
下面是我找到的例子。有人知道我现在所描述的是不是有一种本地方式,或者知道如何修改它以适应我的情况吗
class RequiredIf(Required):
# a validator which makes a field required if
# another field is set and has a truthy value
def __init__(self, other_field_name, *args, **kwargs):
self.other_field_name = other_field_name
super(RequiredIf, self).__init__(*args, **kwargs)
def __call__(self, form, field):
other_field = form._fields.get(self.other_field_name)
if other_field is None:
raise Exception('no field named "%s" in form' % self.other_field_name)
if bool(other_field.data):
super(RequiredIf, self).__call__(form, field)
可能的重复可能的重复