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 相关文章推荐
Linux环境下MySQL-python安装过程分享
Feb 02 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
python数据分析数据标准化及离散化详解
Feb 26 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
python常用运维脚本实例小结
Feb 14 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
通过实例了解python__slots__使用方法
Sep 14 Python
Pycharm Git 设置方法
Sep 15 Python
Python爬虫制作翻译程序的示例代码
Feb 22 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 fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
python实现彩票系统
2020/06/28 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
预备党员思想汇报范文
2014/01/11 职场文书
工地安全生产标语
2014/06/06 职场文书
结对共建协议书
2014/08/20 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
《角的度量》教学反思
2016/02/18 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
redis内存空间效率问题的深入探究
2021/05/17 Redis