我正在django
中处理此表单class EmailOrPhoneForm(forms.Form):
phone_or_email = forms.CharField(
validators=[validate_phonenumber, validate_email],
)
它有两个验证器,但如果其中一个有效,电话号码或电子邮件,我希望表单返回true。
如果不编写一个可以完成所有操作的验证器,我怎么能这样做呢?
答案 0 :(得分:0)
django.core.validators
validate_ipv46_address
函数中。它适用于两个验证器:
validate_ipv4_address
和validate_ipv6_address
将相同的情况应用到我的案例中。
def validate_email_or_phone(value):
try:
validate_email(value)
except ValidationError:
try:
validate_phone_number(value)
except ValidationError:
raise ValidationError(_('Enter a valid Email address or Phone number'), code='invalid')
这将是该字段的新验证器
class EmailOrPhoneForm(forms.Form):
phone_or_email = forms.CharField(
validators=[validate_email_or_phone],
)
希望有所帮助。