博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django数据模型中null和blank的区分
阅读量:5859 次
发布时间:2019-06-19

本文共 1670 字,大约阅读时间需要 5 分钟。

虽然本人使用django也有几年的时间,但是还是对django中数据模型的nullblank有点分不清楚,我想很多人也和我一样的困惑,现在将全面彻底的讲解下两个的区别。

一、null的使用

  • 1、默认是False的,如果设置为True的时候,django将会映射到数据表指定是否为空
  • 2、如果这个字段设置为False的时候,如果没给这个字段传递任何值的时候,django也会使用一个空字符串('')存储进去
  • 3、如果这个字段设置为True的时候,django会产生两种空值的情形(null和空字符串)
  • 4、如果想要在表单验证的时候允许这个字符串为空的时候,django建议使用blank=True
  • 5、如果你的字段BooleanField的时候,可以为空的建议使用NullBooleanField

  • 1、数据模型代码

    class BookModel(models.Model):    """    书籍的数据模型    """    uuid = models.UUIDField(unique=True, default=uuid.uuid4, verbose_name='uuid')    name = models.CharField(max_length=100, default='', null=True, verbose_name='书籍名称')    # null默认是False,但是本案例中还是写上去,更好区分    author = models.CharField(max_length=100, default='', null=False, verbose_name='作者')    # blank=True仅仅是在表单校验的时候可以为空,别的时候没什么区别    price = models.FloatField(default=0, blank=True, verbose_name='价格')    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')    def __str__(self):        return '
    ({}, {}, {}, {}, {}, {})'.format(self.uuid, self.name, self.author, self.price,self.create_time, self.update_time) class Meta(object): db_table = 'book'复制代码
  • 2、sql语句

    CREATE TABLE `book` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(100) DEFAULT NULL,  `price` double NOT NULL,  `create_time` datetime(6) NOT NULL,  `update_time` datetime(6) NOT NULL,  `uuid` char(32) NOT NULL,  `author` varchar(100) NOT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `uuid` (`uuid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8复制代码
  • 3、数据库表结构

  • 4、插入数据后显示对比

二、blank的使用

  • 1、这个字段是在表单验证的时候可以为空,默认是False
  • 2、这个和null是有区别的
    • blank=True仅仅是在表单验证的时候可以为空
    • null=True仅仅是数据库级别的null

转载地址:http://mwwnx.baihongyu.com/

你可能感兴趣的文章
软件测试笔记3-基础知识(2)
查看>>
线程间通信常用的三种方法
查看>>
contentprovider基础
查看>>
【动态规划】【记忆化搜索】CODEVS 3409 搬运礼物 CodeVS原创
查看>>
php创建多级目录
查看>>
在Ubuntu Server下安装Oracle XE
查看>>
[转载]TortoiseGit安装与使用
查看>>
GetqueueStatus
查看>>
Fzu月赛11 老S的旅行计划 dij
查看>>
.NetCore使用skywalking实现实时性能监控
查看>>
合格PHP工程师的知识结构
查看>>
30个漂亮的棕色系网站设计欣赏
查看>>
jison解析Cube信息 存入又读取出来
查看>>
第四次作业
查看>>
redis安装与简单使用
查看>>
简单prufer应用
查看>>
JS事件类型及介绍
查看>>
jquery easyui 研究(一)Datagrid初始化设置
查看>>
java static fianl 使用
查看>>
【荐】隐藏在网页左侧的腾讯QQ和阿里旺旺在线客服代码
查看>>