Objects 多条件 Q对象金额F 对象

Q对象

作用:用于查询条件之间的逻辑关系。not and or ,可以对Q 对象进行 &|- 操作,与或非的操作

使用之前导入:

  from django.db.models import Q

 例:查询id大于3且阅读量大于30的图书的信息

  BookInfo.objects.filter(id__gt=3,bread__gt=30)

  BookInfo.objects.filter(  Q(id__gt=3)  &  Q(bread__gt=30)  )

 例:查询id大于3或阅读量大于30的图书的信息

  BookInfo.objects.filter(  Q(id__gt=3)  |  Q(bread__gt=30)  )

 例:查询id不等于3图书的信息

  BookInfo.objects.filter(  -Q(id=3)  )

F对象

作用:用于类属性之间的比较

使用之前导入:from django.db.models import F

例:查询图书阅读量大于评论量图书信息。

  BookInfo.objects.filter(  bread__gt  =  F(‘bcomment‘)  )

例:查询图书阅读量大于2倍评论量图书信息。

  BookInfo.objects.filter(  bread__gt  =  F(‘bcomment‘)*2  )

原文地址:https://www.cnblogs.com/simon-lzx/p/12557258.html

时间: 2024-08-01 19:56:36

Objects 多条件 Q对象金额F 对象的相关文章

F对象、Q对象、聚合函数

F对象作用:用于类属性之间的比较.使用之前需要先导入:from django.db.models import F例:查询图书阅读量大于评论量图书信息.BookInfo.objects.filter(bread__gt=F('bcomment'))例:查询图书阅读量大于2倍评论量图书信息.BookInfo.objects.filter(bread__gt=F('bcomment')*2) Q对象作用:用于查询时条件之间的逻辑关系.not and or,可以对Q对象进行&|~操作.使用之前需要先导

[django]django-orm中F对象的使用

django-orm中F对象的使用 前言 django文档中有一节是 Query-related classes,说 的是关联查询,1.7新加上去的,这里的关联是字段的关联,而不是表之间的关联. 表关联中主要用的是3个对象 F(), Q(), 和Prefetch(),其中Prefetch是1.7新加入的,其他两个是之前版本就有的.之前有个需求是比较一张表里的两个时间字段,用到过F这个对象,今天再看djangocon的ppt时候又发现了一些新的用法,于是查询了下文档,小结一下. 概念 class

Django F对象的使用

概念 class FF()是代表模型字段的值,也就是说对于一些特殊的字段的操作,我们不需要用Python把数据先取到内存中,然后操作,在存储到db中了. 场景 例1:我们有个统计点击量的字段,每次更新的操作其实就是把字段的值加1. 一般我们的做法是把这条记录取出来,把相应字段加+1,然后在save,类似下面的代码: # Tintin filed a news story! reporter = Reporters.objects.get(name='Tintin') reporter.stori

IE6 IE7 IE8(Q) 不支持 JSON 对象

标准参考 JSON 是一种数据交换格式,RFC 4627 对 JSON 进行了详细描述. 根据 ECMA-262(ECMAScript)第 5 版中描述,JSON 是一个包含了函数 parse 和 stringify 的简单对象. parse 函数用来解析一个 JSON 文本(一个 JSON 格式的字符串)到一个 ECMAScript 值(例如 JSON 对象被解析为 ECMAScript 对象, JSON 数组被解析为 ECMAScript 数组,其它类型以此类推):stringify 则相反

django-orm中F对象的使用

概念 class F F()是代表模型字段的值,也就是说对于一些特殊的字段的操作,我们不需要用python把数据先取到内存中,然后操作,在存储到db中了. 字段+1(加减乘除运算) 一般情况 order = OrderList.objects.get(id='1') order.amount += 1 order.save() 使用F(一句话搞定) OrderList.objects.filter(id='1').update(amount=F('amount') + 1)

Python基础第九天——迭代对象、 迭代器对象、生成器、三元表达式列表解析、生成器表达式

鸡汤: 要时刻不断地给自己灌输一种思想:都TMD是个人,凭什么他会而我就不会?王候将相宁有种乎?我承认人有天赋的差别,但是勤奋能弥补缺陷!所以,根据以上观点得出以下结论,只要出生时不是个傻子,那么就没有蠢的人,只有懒的猪!只要勤奋上进,小白也会变大神.加油 --奔跑吧小白 一.迭代对象.迭代器对象 1.迭代 定义:带有__iter__方法的就是可迭代对象 python常用的数据类型中,除了数字外,都是迭代对象. 例:用isinstance判断python常用数据类型是否为迭代对象,经验证,pyt

标准库》第三章 包装对象和Boolean对象

第三部分  标准库 ***************第三章   包装对象和Boolean对象******************* 一.包装对象的定义[1]有人说,JavaScript语言"一切皆对象",数组和函数本质上都是对象,就连三种原始类型的值--数值.字符串.布尔值--在一定条件下,也会自动转为对象,也就是原始类型的"包装对象". 所谓"包装对象",就是分别与数值.字符串.布尔值相对应的Number.String.Boolean三个原生对象

Python 迭代器协议以及可迭代对象、迭代器对象

一.迭代器协议定义: 迭代:是一个重复的过程,每一次重复,都是基于上一次的结果而来 while True: #单纯的重复 print('你瞅啥') l=['a','b','c','d'] count=0 while count < len(l): print(l[count]) count+=1 迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 二.可迭代对象定义: 实现了迭代器协议

通过Lock对象以及Condition对象实现多线程同步

通过Lock对象以及Condition对象实现多线程同步: 在之前的学习中,无论是通过synchronized建立同步代码块,还是通过synchronized建立同步函数,都是把对象看成一把锁来实现同步,这种解释有点牵强,而且在消费者-生产者的那个实例中,其实还有个问题,那就是在避免线程全部冻结时,没必要把相同功能的线程解冻,只要把其他功能的线程解冻即可,也就是说消费者线程只要解冻生产者线程即可,没必要把其他消费者线程也解冻,为了解决这些问题,java1.5版本推出了同步的升级办法,那就是通过L