Django1.8emailfield现在接受无效的电子邮件地址

2024-10-01 09:22:29 发布

您现在位置:Python中文网/ 问答频道 /正文

使用django1.8模型EmailField像这样。。。在

email = models.EmailField(verbose_name='email address', max_length=254, unique=True, db_index=True)

…允许输入无效电子邮件。例如,当发生错误时,以下命令将创建一个有效的用户。。。在

User(email="number_six@caprica", password="xyz")

但是,如果我在Django中测试验证器,它会正确地捕获它。。。在

from django.core.validators import validate_email validate_email("number_six@caprica")

我得到正确的Enter a valid email address.响应。在

怎么回事?EmailField和{}不使用相同的regex吗?为什么EmailField接受无效的电子邮件地址,而validate_email不接受?在


Tags: name模型truenumberverboseaddressmodels电子邮件
1条回答
网友
1楼 · 发布于 2024-10-01 09:22:29

这些不是无效的电子邮件地址,浏览器也接受电子邮件类型的输入。在

例如,me@localhost是一个有效的电子邮件地址。在

本地域名不需要TLD,这就是为什么。在

编辑:尽管这些是有效的电子邮件地址,Django不接受它们。EmailField确实使用validate_email验证器。在

您的问题是模型实例验证必须手动运行,例如使用full_clean方法。有关详细信息,请参见https://docs.djangoproject.com/en/1.8/ref/models/instances/#validating-objects。在

相关问题 更多 >