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+Django在windows下的开发环境配置图解
Nov 11 Python
Python实现多线程抓取妹子图
Aug 08 Python
python先序遍历二叉树问题
Nov 10 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
Apr 19 Python
Django 内置权限扩展案例详解
Mar 04 Python
python函数中将变量名转换成字符串实例
May 11 Python
Python虚拟环境库virtualenvwrapper安装及使用
Jun 17 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
Jan 15 Python
python中Pexpect的工作流程实例讲解
Mar 02 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
Python os和os.path模块详情
Apr 02 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
ThinkPHP惯例配置文件详解
2014/07/14 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
javascript 新浪背投广告实现代码
2009/07/07 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
javascript常用函数(1)
2015/11/04 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
vue源码解析之事件机制原理
2018/04/21 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
Python字符串和字典相关操作的实例详解
2017/09/23 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
努比亚手机官网:nubia
2016/10/06 全球购物
美国网上花店:JustFlowers
2017/02/12 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
大学迎新标语
2014/06/26 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
预备党员半年考察意见
2015/06/01 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
朋友离别感言
2015/08/04 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server