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. SpringBoot整合WEB开发--(四)@ControllerAdvice

    1.全局异常处理: @ControllerAdvice处理全局数据,一般搭配@ExceptionHandler,@ModelAttribute以及@InitBinder使用. @ControllerA ...

  2. Linux - Deepin Linux,intel无线网卡下载慢、不能跑满宽带的解决方案

    解决方案 将 /etc/modprobe.d/iwlwifi.conf中的11n_disable=1删掉,重启. 参考 https://bbs.deepin.org/forum.php?mod=vie ...

  3. jQuery的主要使用方法

    一.在html中添加jquery,可以使用cdn加载jquery 1.网址:https://www.bootcdn.cn/jquery/ 2.推荐使用3.4左右版本的,建议使用min.js后缀的,mi ...

  4. 「题解」「CF853B」Jury Meeting

    目录 题目 思路 代码 题目 传送门 思路 十分巧妙的差分前缀和好题. 题目板块完结之后,我看到有很多处理此题的方法,但总感觉差分前缀和比较巧妙. 首先,通过输入我们可以将每个人能在 \(0\) 号点 ...

  5. python之文件复制

    python文件复制操作. # -*- coding: utf-8 -*- import shutil import os # file_path = 'C:\\Users\\WT\\Desktop\ ...

  6. 【Python】 平方根

    平方根,又叫二次方根,表示为[√ ̄],如:数学语言为:√ ̄16=4.语言描述为:根号下16=4. 以下实例为通过用户输入一个数字,并计算这个数字的平方根: num = float(input('请输入 ...

  7. HTML学习(16)颜色

    HTML 颜色由红色.绿色.蓝色混合而成. 颜色值 HTML 颜色由一个十六进制符号来定义,这个符号由红色.绿色和蓝色的值组成(RGB). 每种颜色的最小值是0(十六进制:#00).最大值是255(十 ...

  8. 搭建FEBS权限系统

    在码云看到一个FEBS权限系统,但是没有找到搭建手册,自己记录一下. 1.下载项目:https://github.com/wuyouzhuguli/FEBS-Shiro2.创建数据库:执行sql文件夹 ...

  9. 后端分页神器,mybatis pagehelper 在SSM与springboot项目中的使用

    mybatis pagehelper想必大家都耳熟能详了,是java后端用于做分页查询时一款非常好用的分页插件,同时也被人们称为mybatis三剑客之一,下面 就给大家讲讲如何在SSM项目和sprin ...

  10. git上传时出现ERROR: Repository not found.的解决办法

    今天在上传时出现错误,原因是之前更改了gitee上的个人空间地址,导致找不到.需要重新配置 https://gitee.com/help/articles/4114#article-header0