Django models中关于blank与null的补充说明

Posted shengguorui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django models中关于blank与null的补充说明相关的知识,希望对你有一定的参考价值。

建立一个简易Model

class Person(models.Model):
    GENDER_CHOICES=(
        (1,Male),
        (2,Female),
        )
    name=models.CharField(max_length=30,unique=True,verbose_name=姓 名)   
    birthday=models.DateField(blank=True,null=True)
    gender=models.IntegerField(choices=GENDER_CHOICES)
    account=models.IntegerField(default=0)  

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 一条记录的时候。直观的看到就是该字段不是粗体

以上是关于Django models中关于blank与null的补充说明的主要内容,如果未能解决你的问题,请参考以下文章

Django model.py表单的默认值 默认允许为空

django数据模型中关于on_delete, db_constraint的参数说明

如何限制 Django ORM 中外键关系的数量?

Django Admin Cookbook-40如何为Django Admin覆盖保存操作

django中关于BooleanField选项的字符串转化

django models建表设置default=1和blank=True没有效果