【发布时间】:2015-01-20 21:02:18
【问题描述】:
在我的用户表单中,我想保留“电子邮件”字段可选,但如果提到电子邮件,在这种情况下,我的自定义验证器应该可以工作。我希望下面的代码能够工作。但不幸的是它不起作用:
class AddUserForm(Form):
email = TextField('Email ID', [validators.Optional(strip_whitespace=True)])
@staticmethod
validate_email(form, field):
if field.data is not None:
if not is_valid_email_id_custom_function(field.data):
raise ValidationError('please enter a valid email id')
我想要如下效果:
- 如果电子邮件字段为空,则不执行任何操作,可以将其留空。
- 但是如果电子邮件字段有一些数据,那么验证它是否可以接受。
如果我将电子邮件字段声明为可选,则完全跳过验证。我有解决这个问题的方法,但是有什么惯用且直接的方法来解决这个问题吗?
【问题讨论】:
标签: wtforms flask-wtforms