如题,添加 database field 时,会有这样的字段 models.CharField(null=True, blank=True)
,这里 null=True
和 blank=True
分别代表什么?
如题,添加 database field 时,会有这样的字段 models.CharField(null=True, blank=True)
,这里 null=True
和 blank=True
分别代表什么?
引用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
)
只是从数据库层面来说。
更详细的不同情参照文档。
https://docs.djangoproject.com/en/dev/ref/models/fields/#null
不知道是搜不到,还是懒得看英文。
1 回答9.7k 阅读✓ 已解决
2 回答5.5k 阅读✓ 已解决
2 回答3.7k 阅读✓ 已解决
3 回答4.6k 阅读
4 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
null
是针对数据库而言,如果null=True
, 表示数据库的该字段可以为空。blank
是针对表单的,如果blank=True
,表示你的表单填写该字段的时候可以不填,比如admin
界面下增加model
一条记录的时候。直观的看到就是该字段不是粗体