为了账号安全,请及时绑定邮箱和手机立即绑定

django 数据模型中 null=True 和 blank=True 有什么区别

django 数据模型中 null=True 和 blank=True 有什么区别

桃花长相依 2019-03-13 10:09:38
django 数据模型中 null=True 和 blank=True 有什么区别
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

null:
If True, Django will store empty values as NULL in the database. Default
is False.
如果为True,空值将会被存储为NULL,默认为False。

blank:
If True, the field is allowed to be blank. Default is False.
如果为True,字段允许为空,默认不允许。

查看完整回答
反对 回复 2019-03-18
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

引用sof上的一个回答。

class Test(models.Model):

charNull = models.CharField(max_length=10, null=True)

charBlank = models.CharField(max_length=10, blank=True)

charNullBlank = models.CharField(max_length=10, null=True, blank=True)
intNull = models.IntegerField(null=True)
intBlank = models.IntegerField(blank=True)
intNullBlank = models.IntegerField(null=True, blank=True)

dateNull = models.DateTimeField(null=True)
dateBlank = models.DateTimeField(blank=True)
dateNullBlank = models.DateTimeField(null=True, blank=True)

The database fields created for MySQL 5.6.x are :

CREATE TABLE test (
id INT(11) NOT NULL AUTO_INCREMENT,
`charNull` VARCHAR(10) NULL DEFAULT NULL,
`charBlank` VARCHAR(10) NOT NULL,
`charNullBlank` VARCHAR(10) NULL DEFAULT NULL,

`intNull` INT(11) NULL DEFAULT NULL,
`intBlank` INT(11) NOT NULL,
`intNullBlank` INT(11) NULL DEFAULT NULL,

`dateNull` DATETIME NULL DEFAULT NULL,
`dateBlank` DATETIME NOT NULL,
`dateNullBlank` DATETIME NULL DEFAULT NULL

)


 


查看完整回答
反对 回复 2019-03-18
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

你好,很高兴回答你的问题

null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空。
blank 是针对表单的,如果 blank=True,表示你的表单填写该字段的时候可以不填,比如 admin 界面下增加 model 一条记录的时候。直观的看到就是该字段不是粗体

希望能帮到你

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 658 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信