django orm模块中的 is_delete用法


Posted in Python onMay 20, 2020

数据库删除数据咱都知道,简单的说就是当一条数据对企业没用后,一般人可能会选择删除这条数据。

但是删除后,万一以后又突然有用呢。所以我们这时候会选择在写orm模块的时候,加入is_delete字段

is_delete = models.BooleanField(default=False,verbose_name='是否删除')

这样以后咱如果要删除一条数据了,就设置一下

is_delete=1

就表示这条数据在逻辑上删除了,简单的说就是你再怎么搜数据库也搜不到了,如果以后还用,就再设置

is_delete=0

就可以了!

补充知识:django中当model设置了ordering后,使用distinct()和annotate()问题记录

model类如下,我在class Meta中设置了ordering = ['-date_create'],即模型对象返回的记录结果集是按照这个字段排序的。

class SystemUserPushHistory(models.Model):
 
  id = models.UUIDField(default=uuid.uuid4, primary_key=True)
  host_name = models.CharField(max_length=128, null=False)
  system_username = models.CharField(max_length=128, null=False)
  method = models.CharField(max_length=32, null=False)
  is_success = models.BooleanField(default=False)
  date_create = models.DateTimeField(auto_now_add=True, editable=False)
  message = models.CharField(max_length=4096, null=True)
 
  class Meta:
    db_table = "assets_systemuser_push_history"
    ordering = ['-date_create']
 
  def __str__(self):
    ret = self.system_username + " => " + self.host_name
    return ret

当业务有需求如对host_name进行分组显示,在代码中用到了annotate,如下。

>>> from django.db.models import Count 
>>> from assets.models import SystemUserPushHistory
>>> p = SystemUserPushHistory.objects.values("host_name").annotate(dcount=Count(1))
>>> p
<QuerySet [{'host_name': '点2', 'dcount': 1}, {'host_name': '点3', 'dcount': 2}, {'host_name': '点2', 'dcount': 1}, {'host_name': '点3', 'dcount': 1}]>
>>> print(p.query)
SELECT `assets_systemuser_push_history`.`host_name`, COUNT(1) AS `dcount` FROM `assets_systemuser_push_history` GROUP BY `assets_systemuser_push_history`.`host_name`, `assets_systemuser_push_history`.`date_create` ORDER BY `assets_systemuser_push_history`.`date_create` DESC

可以看到,所得到的结果并不像我们预期的一样,之后把执行的sql输出出来可以看到在group by的时候是对host_name和date_create进行分组,原因就是因为我们在model类中设置了ordering,去掉之后代码运行正常。

使用distinct和上面的情况类似,就不列出来了。

以上这篇django orm模块中的 is_delete用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
Python编写屏幕截图程序方法
Feb 18 Python
Tensorflow简单验证码识别应用
May 25 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
Python 3 实现定义跨模块的全局变量和使用教程
Jul 07 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
numpy:找到指定元素的索引示例
Nov 26 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
Apr 01 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 Python
详解如何修改python中字典的键和值
Sep 29 Python
python中的对数log函数表示及用法
Dec 09 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
Python3批量创建Crowd用户并分配组
May 20 #Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 #Python
django中related_name的用法说明
May 20 #Python
在django中form的label和verbose name的区别说明
May 20 #Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 #Python
django model 条件过滤 queryset.filter(**condtions)用法详解
May 20 #Python
如何在sublime编辑器中安装python
May 20 #Python
You might like
如何在PHP中使用Oracle数据库(1)
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
python删除过期文件的方法
2015/05/29 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
2020/02/03 Python
jupyter notebook 重装教程
2020/04/16 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
Python如何定义接口和抽象类
2020/07/28 Python
python mock测试的示例
2020/10/19 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
股权转让协议书范本
2014/04/12 职场文书
企业员工集体活动方案
2014/08/17 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
周年庆典答谢词
2015/01/20 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
班主任远程培训研修日志
2015/11/13 职场文书