为什么django模型层的null和blank约束不起作用?
我正在学习django model层的API,但是当我创建好一个model,并且存入数据库时,发现即使null=False
,blank=False
的field
仍然可以存入空值,例如
models.py
from django.db import models
class Person(models.Model):
name = models.CharField()
在命令行:
>>> p = Person()
>>> p.save()
###此时查看数据库,可以发现一条空的person记录
请问为什么null
和blank
的约束无效?是否他们对底层API没有约束?
补充一下:我使用的数据库是django
自带的sqlite3
谢谢大家的指点!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
http://www.weiguda.com/blog/8/
供参考。
如果楼主有兴趣,可以
测试一下 我猜会报错。
我也遇到这个问题了。
在执行以上代码的时候,Django已经给你赋值了,空字符串'',所以这就是为什么我看查看数据库看到的不是null,而是空字符串,我们知道空字符串''其实并不是真正意义上的null。所以save直接能保存。
我的根据是来自"何时使用null和blank"这个问题的讨论