django - model 中 blank 和 null 的用法区别
在学习 django 框架的时候,编写 models 时遇到了这个问题,为了能够区分什么时候用 blank,什么时候用 null,所以写下两个的具体用法。
blank:
当 blank=True 时,说明此处的数据可以不填,默认情况下为False,
也就意味着默认情况下,所输入的数据不得空,blank 是和页面表单有关,
在页面需要输入参数的时候,如果在 models 里面定义了 blank=True 时,那么这个参数是可以不填写的;
如果是默认的话,如果没有填写,则会提示错误。
null:
当 null=True 时,也就是说如果没有填写数据,此处用 null 来储存空值,默认的是 null=False。
总结:
blank 主要是用在CharField,TextField,这两个字符型字段可以用空字符穿来储存空值。
null 主要是用在 IntegerField,DateField,DateTimeField,这几个字段不接受空字符串,所以在使用时,必须将 blank 和 null 同时赋值为 True。
顺便一提,在设置 BooleanField 为空时,可以使用 NullBooleanField 型字段。