В WTForms, как сделать необязательное обязательное поле пустым? - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть два поля, в которых пользователь может выбрать одно для ввода, но они не могут ввести оба и не могут пропустить оба.Requiered() делает так, что они не могут пропустить один, а 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)
...