¿Hay alguna manera de implementar una validación en WTFforms que imponga el hecho de que al menos uno de los campos es obligatorio?
Por ejemplo, tengo dos StringField y quiero asegurarme de que el usuario escriba algo en al menos uno de los campos antes de hacer clic en "enviar".
field1 = StringField('Field 1', validators=[???]) field2 = StringField('Field 2', validators=[???]) ¿Qué debo escribir en lugar de ??? ? InputRequired() en este caso no haría el trabajo ya que necesito asignarlo a uno de los campos o a ambos. ¿Cómo puedo hacer eso?
Anule el método de validate de su formulario. Por ejemplo:
class CustomForm(FlaskForm): field1 = StringField('Field 1') field2 = StringField('Field 2') def validate(self, extra_validators=None): if super().validate(extra_validators): # your logic here eg if not (self.field1.data or self.field2.data): self.field1.errors.append('At least one field must have a value') return False else: return True return FalseTenga en cuenta que aún puede agregar validadores individuales a los campos, por ejemplo, longitud de entrada.