关于Django字段类型中 blank和null的区别
Posted yrind
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Django字段类型中 blank和null的区别相关的知识,希望对你有一定的参考价值。
blank
设置为True时,字段可以为空。设置为False时,字段是必须填写的。字符型字段CharField和TextField是用空字符串来存储空值的。
如果为True,字段允许为空,默认不允许。
null
设置为True时,django用Null来存储空值。日期型、时间型和数字型字段不接受空字符串。所以设置IntegerField,DateTimeField型字段可以为空时,需要将blank,null均设为True。
如果为True,空值将会被存储为NULL,默认为False。
如果想设置BooleanField为空时可以选用NullBooleanField型字段。
一句话概括
- null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空。
- blank 是针对表单的,如果 blank=True,表示你的表单填写该字段的时候可以不填,比如 admin 界面下增加 model 一条记录的时候。直观的看到就是该字段不是粗体
- 通俗点说,该字段null=true后,你进行插入,修改操作时可以为空,然后Django把空值转换成null存在数据库中,而blank只是在表单验证的时候会检测你是否可以为空
以上是关于关于Django字段类型中 blank和null的区别的主要内容,如果未能解决你的问题,请参考以下文章
Django UUIDFIeld unique=True、blank=True 和 null=True 的行为是不是正确?