为什么django模型层的null和blank约束不起作用?

发布于 2022-09-02 11:37:32 字数 523 浏览 14 评论 0

我正在学习django model层的API,但是当我创建好一个model,并且存入数据库时,发现即使null=False,blank=Falsefield仍然可以存入空值,例如

models.py

from django.db import models

class Person(models.Model):
    name = models.CharField()

在命令行:

>>> p = Person()
>>> p.save()
###此时查看数据库,可以发现一条空的person记录

请问为什么nullblank的约束无效?是否他们对底层API没有约束?

补充一下:我使用的数据库是django自带的sqlite3

谢谢大家的指点!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剑心龙吟 2022-09-09 11:37:32

http://www.weiguda.com/blog/8/
供参考。

如果楼主有兴趣,可以

from django.db import models

class Person(models.Model):
    name = models.IntegerField()

测试一下 我猜会报错。

旧街凉风 2022-09-09 11:37:32

我也遇到这个问题了。

from .model import Person

def A():
    p = Person()
    p.save()

在执行以上代码的时候,Django已经给你赋值了,空字符串'',所以这就是为什么我看查看数据库看到的不是null,而是空字符串,我们知道空字符串''其实并不是真正意义上的null。所以save直接能保存。

我的根据是来自"何时使用null和blank"这个问题的讨论

clipboard.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文