TL; DR AnyOf-Validierung unterstützt Select Multiple Field nicht. Sie müssen eine benutzerdefinierte Validierung verwenden.
In Bezug auf die Implementierung der AnyOf-Validierung wird SelectMultipleField nicht unterstützt. Im Fall von SelectMultipleField wird field.data als Listentyp übergeben, sodass Zeile 562 immer True zurückgibt.
https://github.com/wtforms/wtforms/blob/23f730a9cfca478f01fda2b38fde17ad56e9a83d/src/wtforms/validators.py#L562
Sie können eine Validierung für Select Multiple Field wie folgt erstellen.
def anyof_for_multiple_field(values):
message = 'Invalid value, must be one of: {0}.'.format( ','.join(values) )
def _validate(form, field):
error = False
for value in field.data:
if value not in values:
error = True
if error:
raise ValidationError(message)
return _validate
Recommended Posts