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. (ghrd)pio设置

    设置中是下降沿,边沿触发.

  2. 第四十篇 入门机器学习——Numpy.array的基本操作——向量及矩阵的运算

    No.1. Numpy.array相较于Python原生List的性能优势 No.2. 将向量或矩阵中的每个元素 + 1 No.2. 将向量或矩阵中的所有元素 - 1 No.3. 将向量或矩阵中的所有 ...

  3. Bootstrap框架学习

    Bootstrap框架个人总结 https://blog.csdn.net/To_Front_End/article/details/51142716 Bootstrap 教程 https://www ...

  4. P1908 逆序对(归并排序)

    https://www.luogu.com.cn/problem/P1908 归并排序是用来求逆序对的 归并排序的思想就是分治 #include <bits/stdc++.h> using ...

  5. pyautocad

    首部必须 #!/usr/bin/env python # -*- coding: utf-8 -*- 导入pyautocad import pyautocad import re # 设置python ...

  6. Is It Good To Use LED Wall Light In Household Space?

    Wall lamps are mostly used for local lighting, can play a very decorative effect, improve the visual ...

  7. pandas 进行excel绘图

    python主流绘图工具:matplotlib ,seaborn,pandas ,openpyxl ,xslwriter openpyxl :首先说下这个官网的demo,看的有点懵,没有具体说明多个图 ...

  8. docker互联机制实现便捷互访

    何为容器互联 & 为何需要容器互联 容器的互联是一种让多个容器中应用进行快速交互的方式,它会在源和接收容器之间创建连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的 ip 地址 ...

  9. jmeter的使用---用户变量

    用户变量有以下方式: 一.外部引入:csv引入参数 二.sample传递参数:http请求的body参数 三.定义用户变量:全局变量 (1)用户定义的变量 name,和value   一对一 (2)用 ...

  10. linux centos7分区

    哈喽! 我今天来分享一下Linux的分区,本次我使用的是LinuxCentos7版本为例,使用虚拟机,命令是fdisk Linux分区有4个主分区及扩展分区,逻辑分区. 首先给虚拟机添加8G硬盘(硬盘 ...