使用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
和{EmailField
接受无效的电子邮件地址,而validate_email
不接受?在
这些不是无效的电子邮件地址,浏览器也接受电子邮件类型的输入。在
例如,
me@localhost
是一个有效的电子邮件地址。在本地域名不需要TLD,这就是为什么。在
编辑:尽管这些是有效的电子邮件地址,Django不接受它们。
EmailField
确实使用validate_email
验证器。在您的问题是模型实例验证必须手动运行,例如使用
full_clean
方法。有关详细信息,请参见https://docs.djangoproject.com/en/1.8/ref/models/instances/#validating-objects。在相关问题 更多 >
编程相关推荐