1、导入Q对象

from django.db.model import Q

Q 对象可以使用c&(AND)和|(OR)操作符组合起来。

当一个操作符在两个Q 对象上使用时,它产生一个新的Q 对象。

2、例子

Q(question__startswith='Who') | Q(question__startswith='What')

等同于SQL语句

WHERE question LIKE 'Who%' OR question LIKE 'What%'

3、如果一个查询函数有多个Q 对象参数(逗号隔开的),这些参数的逻辑关系为“AND"。

Poll.objects.get(

Q(question__startswith='Who'),

Q(pub_date=date(2018, 5, 29)) | Q(pub_date=date(2018, 5, 30))

)

#等同于下列SQL语句:

SELECT * from polls WHERE question LIKE 'Who%'

AND (pub_date = '2018-05-29' OR pub_date = '2018-05-30')

4、Q 对象可以使用~ 操作符取反,这允许组合正常的查询和取反(NOT) 查询:

Q(question__startswith='Who') | ~Q(pub_date__year=2017)

5、查询函数可以混合使用Q对象和关键字参数。所有提供给查询函数的参数(关键字参数或Q 对象)都将"AND”在一起。但是,如果出现Q 对象,它必须位于所有关键字参数的前面。例如

Poll.objects.get(

Q(pub_date=date(2018, 5, 29)) | Q(pub_date=date(2018, 5, 30))

question__startswith='Who'

#下列是不合法的查询条件

Poll.objects.get(

question__startswith='Who',

Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)))

Django Q查询相关推荐

  1. Python Django Q查询和F查询API

  2. Django 的F查询与Q查询,事物

           F查询 Django 提供 F() 来做这样的比较.F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值 示例1: 查询出卖出数大于库存数的商品 from ...

  3. Django的mode的分组查询和聚合查询和F查询和Q查询

    1.聚合查询 # 聚合函数aggregate,求指定字段的最大值,最小值,平均值,和的值,方法如下from django.db.models import Avgfrom django.db.mode ...

  4. Django 【第六篇】ORM跨表操作(聚合查询,分组查询,F和Q查询等)

    一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出 ...

  5. django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066

    django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066 1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate( ...

  6. Django聚合分组查询(F与Q查询|ORM查询优化|常见字段参数)

    文章目录 一.正反向查询进阶操作 二.聚合查询 三.分组查询 四.ORM再次添加字段 五.F与Q查询 五.ORM查询优化 六.事务操作 七.模型层常见字段 八.ORM常见字段参数 九.多对多三种创建方 ...

  7. Django的Q查询

    Complex lookups with Q objects(Q对象的复杂查询) 仅仅靠单一的关键字参数查询已经很难满足查询要求.此时Django为我们提供了Q查询: class Q 1.Q对象(dj ...

  8. Django Model各种操作 Meta 常用字段 一对多操作 多对对操作 F Q查询 聚合函数

    Model操作 meta源信息 class CLS(models.Model):username = models.CharField(max_length=32)class Meta:db_tabl ...

  9. Day51python Django 多表操作 聚合查询、分组查询、F查询、Q查询

    1聚合查询aggregate aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典,可以自己制定键. 1.# 计算所有图书的平均价格 books = mo ...

  10. django 中的聚合函数,分组函数,F 查询, Q查询

    先以mysql的语句,聚合用在分组里, 对mysql中groupby 是分组 每什么的时候就要分组,如 每个小组,就按小组分, group by 字段 having 聚合函数 #举例  :求班里的平均 ...

最新文章

  1. keil git 编译文件_keil下的STM32程序开发部署(一)
  2. 整合用户篇—Oauth2理解与构造简单的系统
  3. 提交不了_从来没有借过钱!征信空白,为什么办不了信用卡?
  4. 20000赫兹的声音试听下载_好听又不贵,DLC球顶双面镀铍动圈:七赫兹i99
  5. python静态变量和静态方法_python的静态成员变量、实例成员变量、静态方法、类方法、实例方法...
  6. 单片机上运行linux程序代码,在Linux下烧录51单片机
  7. java timer schedule_java怎么再次设置Timer的schedule???
  8. idata界面_iData手持移动终端组合键恢复出厂设置教程
  9. htnl 点击系统记录显示在右侧_软网推荐:时间管理者 记录工时与薪酬
  10. 信息系统开发与管理(自考)往届题目复习
  11. The Python Debugger Command
  12. 北京住房仰视链,你在第几层?
  13. hdu5294Tricks Device【最短路+网络流】
  14. 如何安装linux系统步骤
  15. access简述报表的功能_access中报表的作用
  16. vue3 内置组件keep-alive用法的全面介绍
  17. 跟随《西西里的美丽传说》 慢游锡拉库萨
  18. Insomnia的下载
  19. mysql查看数据库事务隔离级别_MySQL查看和修改事务隔离级别的实例讲解
  20. uva 10118(DP)

热门文章

  1. 阿里巴巴python开发面试题_2019阿里巴巴面试题集锦(有答案哦),收藏!
  2. keras求两向量间的余弦值
  3. 【计算机视觉】简述对MSAA(多尺度注意力融合)的理解
  4. 如何用计算机测量图片景深,用比较仔细的测量搞清楚“景深”(1.实测景深与公式比较)...
  5. python lncrna_使用CNCI分析lncRNA
  6. 「 神器 」快速启动应用Wox
  7. bootstrap table
  8. c语言 switch整型,c语言switch型别强制转换的问题。
  9. 拼多多分享好友砍价Java实现_拼多多砍价怎么发到qq?怎么帮好友砍价?
  10. Layer子域名挖掘机