blank

  • 设置为 True 时,字段可以为空
  • 设置为 False 时,字段是必须填写的
  • 默认为 False

null

  • 设置为 True 时,数据库的字段允许为NULL,而且表单中的空值将会被存储为NULL
  • 设置为 False 时,数据库的字段不允许为NULL
  • 默认为 False

概括来说:

  • blank只是在表单验证的时候会检测你是否可以为空
  • null则是在表单数据为空值时会向数据库插入NULL

但是由于各数据类型的特点,使用效果也不相同:

Field 类型 设置null=True 设置blank=True
CharField,
TextField,
SlugField,
EmailField,
CommaSeparatedIntegerField等
不要设置
django规定储存空字符串来代表空值, 当从数据库中读取NULL或空值时都为空字符串
可以设置
设置后允许接受widget中为空值(即不填写), 储存到数据库时空值变为空字符串
FileField,
ImageField
不要设置
django实际储存的是路径的字符串, 因此同上
可以设置
同上
BooleanField 不要设置
因为有NullBooleanField代替
不要设置
IntegerField,
FloatField,
DecimalField等
可以设置
如果你希望在数据库中能储存NULL
可以设置
设置后允许接受widget中为空值(即不填写), 设置为True时必须同时设置null=True
DateTimeField,
DateField,
TimeField等
可以设置
如果你希望在数据库中能储存NULL
可以设置
设置后允许接受widget中为空值(即不填写), 设置为True时必须同时设置null=True
ForeignKey,
ManyToManyField,
OneToOneField
可以设置
如果你希望在数据库中能储存NULL
可以设置
设置后允许接受widget中为空值(即不填写)
GenericIPAddressField 可以设置
如果你希望在数据库中能储存NULL
可以设置
设置后允许接受widget中为空值(即不填写)
IPAddressField 不推荐设置
用GenericIPAddressField代替
不推荐设置
用GenericIPAddressField代替

附上一个博客链接:

https://www.b-list.org/weblog/2006/jun/28/django-tips-difference-between-blank-and-null/

Django 字段中 null 和 blank的区别的更多相关文章

  1. django字段设置null和blank的区别

    null 这个选项跟数据库有关. null=True的话,数据库中该字段是NULL,即允许空值:null=False(默认)的话,数据库中该字段是NOT NULL,即不允许空值. blank 这个选项 ...

  2. django Field选项中null和blank的区别

    blank只是在填写表单的时候可以为空,而在数据库上存储的是一个空字符串:null是在数据库上表现NULL,而不是一个空字符串: 需要注意的是,日期型(DateField.TimeField.Date ...

  3. Django-Model模型Field选项中null和blank的区别

    - Option-**blank**设置为True时代表填写表单的时候可以为空,即在save()执行时此字段可以没有,如果字段没有就在数据库上存储一个空字符串: - Option-**null**设置 ...

  4. 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

    浅谈JS中的!=.== .!==.===的用法和区别   var num = 1;     var str = '1';     var test = 1;     test == num  //tr ...

  5. Django models中的null和blank的区别

    blank在数据库上存储的是一个空字符串 如需设置字段可以为空:blank=True,默认为blank=False(字段必须填写); null在数据库上表现为NULL,而不是一个空字符串 如需设置字段 ...

  6. MySQL 中NULL和空值的区别

    平时我们在使用MySQL的时候,对于MySQL中的NULL值和空值区别不能很好的理解.注意到NULL值是未知的,且占用空间,不走索引,DBA建议建表的时候最好设置字段是NOT NULL 来避免这种低效 ...

  7. MySQL 中NULL和空值的区别 (转载 http://blog.sina.com.cn/s/blog_3f2a82610102v4dn.html)

    平时我们在使用MySQL的时候,对于MySQL中的NULL值和空值区别不能很好的理解.注意到NULL值是未知的,且占用空间,不走索引,DBA建议建表的时候最好设置字段是NOT NULL 来避免这种低效 ...

  8. Django模型中OneToOneField和ForeignKey的区别

    网上看到一篇讲解"Django模型中OneToOneField和ForeignKey区别" 的文章,浅显易懂; 可以把ForeignKey形象的类比为: ForeignKey是on ...

  9. 【面试】MySQL 中NULL和空值的区别?

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 01 小木的故事 作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值.那 ...

随机推荐

  1. 未能加载文件或程序集“Autofac.Integration.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

    是因为web.config中dependentAssembly结点下的版本号和当前引用的程序集的版本号不一致!

  2. Ninject 2.x细说---1.基本使用

    Ninject 2.x细说---1.基本使用 https://blog.csdn.net/weixin_33809981/article/details/86091159   本来想使用一下Ninje ...

  3. HTML的页面结构

    HTML的页面结构 以下为命名的规范: header:标题头部区域的内容(用于页面或页面中的一块区域) footer:标记脚步区域的内容(用于整个页面或页面的一块区域) nav:导航类复杂内容 以上3 ...

  4. mysql 实践(例题)

    MySQL安装见本博 安装成功后,开始菜单中找到 “MySQL 8.0 Command Line Client” 进行启动(启动后,可直接输入MySQL密码) 1. create database 数 ...

  5. resize2fs: 报错

    报错如下 [root@localhost ~]# resize2fs /dev/mapper/centos-root resize2fs (-Dec-) resize2fs: Bad magic nu ...

  6. # E. Mahmoud and Ehab and the xor-MST dp/数学+找规律+xor

    E. Mahmoud and Ehab and the xor-MST dp/数学/找规律 题意 给出一个完全图的阶数n(1e18),点由0---n-1编号,边的权则为编号间的异或,问最小生成树是多少 ...

  7. BZOJ 2342 [Shoi2011]双倍回文(Manacher)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2342 题意:求最长子串使得它有四个相同的回文串SSSS相连组成. 首先跑一边Manach ...

  8. pandas 数据可视化之折线图

    官网地址:https://openpyxl.readthedocs.io/en/stable/charts/line.html#id1 openpyxl+pandas # coding=utf-8 i ...

  9. NIO-BufferAPI

    一 核心要素 capacity (容量):不能为负,不可更改:就是buffer的长度(buffer.length) limit (限制):指第一个不可被读入缓冲区元素的位置:不可为负,若positio ...

  10. js语言简介

    JS语言概述 JS语言简史 JS语言的起源 网景(Netscape Communication Corperation),1994年,推出第一款商用浏览器,网景浏览器(Netscape Navigat ...