Вот извлеченный код:
from wtforms import (
Form,
StringField,
validators,
)
class UserForm(Form):
email = StringField('Email', validators=[
validators.Optional(),
validators.Email(),
])
form = UserForm(data={'email': ''})
form.validate()
print(form.errors) # No errors as expected
form = UserForm(data={'email': 'lem'})
form.validate()
print(form.errors) # This should have an error
form = UserForm(data={'email': 'lem@email.com'})
form.validate()
print(form.errors) # No errors as expected
Вывод:
{}
{}
{}
Похоже, что при наличии необязательных пропусков успешно завершаются проверки, есть ли данные в поле или нет.Я подозреваю, что это может быть как-то связано с передачей данных через данные.Я не уверен.
Удаление validators.Optional
дает мне то, что я ожидаю:
{'email': ['Invalid email address.']}
{'email': ['Invalid email address.']}
{}
Это поле электронной почты с валидатором электронной почты не имеет значения.Та же проблема существует, даже если вместо этого у меня validators.Length(min=5)
.