外壳中未进行Django模型验证

Cod*_*der 1 django django-models

我表面上有一个简单的问题。这是我的models.py:

from django.db import models

class Email(models.Model):
    def __unicode__(self):
       return self.email
    email = models.EmailField()
Run Code Online (Sandbox Code Playgroud)

根据docs,EmailField 应该检查输入的电子邮件地址是否有效。那么,为什么我的外壳允许我保存格式错误的电子邮件?在外壳中:

>>> from emailapp.models import Email
>>> e = Email(email="sdf")
>>> e
<Email: sdf>
>>> e.save()
>>> Email.objects.all()
[<Email: sdf@sdf.com>, <Email: sadcljhn@aef.ce>, <Email: sdf>]
Run Code Online (Sandbox Code Playgroud)

管理界面不允许我保存这些格式错误的电子邮件,但外壳程序可以保存。为什么?

Dan*_*man 5

该文档明确指出,您必须自己调用验证