实际上,name@mail.56
email 是 django 的有效电子邮件EmailValidator
,看不到错误:
>>> from django.core.validators import validate_email
>>> validate_email("name@mail.56")
>>>
Django (1.5.1) 使用以下正则表达式来验证电子邮件地址:
r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom
# quoted-string, see also https://www.rfc-editor.org/rfc/rfc2822#section-3.2.5
r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"'
r')@((?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)$)' # domain
r'|\[(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\]$'
它实际上遵循RFC2822标准。
如果您想name@mail.56
在验证过程中失败,您可以创建自己的验证器,并将其添加到EmailField
具有内置validate_email
验证器的验证器中,如下所示:
from django.core.validators import validate_email
from django.core.exceptions import ValidationError
def custom_validate_email(value):
if <custom_check>:
raise ValidationError('Email format is incorrect')
...
email = models.EmailField(max_length=254, blank=False, unique=True, validators=[validate_email, custom_validate_email)
而且,仅供参考,您可以随时在django 票务系统中提交票证或在 django IRC 频道 (irc://irc.freenode.net/django) 上询问问题。
另请参阅:编写验证器。
希望有帮助。