class Contact(models.Model):
first = models.CharField(max_length=100)
last = models.CharField(max_length=100)
email = models.EmailField(blank=True)
def __str__(self):
return ' '.join([self.first, self.last])
在交互环境中
>>> from contacts.models import Contact
>>> nathan = Contact.objects.create(first="Nathan", email="nathan@yergler.net")
>>> nathan
<Contact: Nathan >
>>> nathan.last
''
last字段为空,为什么不报错呢?数据库为 SQLite,难道和数据库有关?
blank
只是适用于表单验证,is_valid()
,你这里只是创建并没有验证啊,所以不会报错。具体解释戳这里blank=False
btw, 如果用的是
sqlite
,django不会做强制空值检查,但是mysql
是会的。