Django的Q查询
Complex lookups with Q objects(Q对象的复杂查询)
仅仅靠单一的关键字参数查询已经很难满足查询要求。此时Django为我们提供了Q查询:
class Q
1、Q对象(django.db.models.Q)可以对关键字参数进行封装,从而更好地应用多个查询,下面是最简单的例子:
from django.db.models import Q
from login.models import New #假设在我的login app的models.py下有New数据类
q1=New.objects.filter(Q(question__startswith='What'))
2、可以组合使用&,|操作符,当一个操作符是用于两个Q的对象,它产生一个新的Q对象。
Q(question__startswith='Who') | Q(question__startswith='What')
3、Q对象可以用~操作符放在前面表示否定,也可允许否定与不否定形式的组合
Q(question__startswith='Who') | ~Q(pub_date__year=2005)
4、应用范围:
Each lookup function that takes keyword-arguments (e.g. filter(), exclude(), get()) can also be passed one or more Q objects as positional (not-named) arguments. If you provide multiple Q object arguments to a lookup function, the arguments will be “AND”ed together. For example:
Poll.objects.get(Q(question__startswith='Who'),Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
)
... roughly translates into the SQL:SELECT * from polls WHERE question LIKE 'Who%'AND (pub_date = '2005-05-02' OR pub_date = '2005-05-06')
5、Q对象可以与关键字参数查询一起使用,不过一定要把Q对象放在关键字参数查询的前面。
正确:
Poll.objects.get(Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)),question__startswith='Who')
错误:
Poll.objects.get(question__startswith='Who',Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)))
转自:http://www.cnblogs.com/BeginMan/archive/2013/04/17/3026243.html
Django的Q查询相关推荐
- Django 的F查询与Q查询,事物
F查询 Django 提供 F() 来做这样的比较.F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值 示例1: 查询出卖出数大于库存数的商品 from ...
- Django的mode的分组查询和聚合查询和F查询和Q查询
1.聚合查询 # 聚合函数aggregate,求指定字段的最大值,最小值,平均值,和的值,方法如下from django.db.models import Avgfrom django.db.mode ...
- Django 【第六篇】ORM跨表操作(聚合查询,分组查询,F和Q查询等)
一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many); 一本书只应该由一个出版商出 ...
- django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066
django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066 1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate( ...
- Django聚合分组查询(F与Q查询|ORM查询优化|常见字段参数)
文章目录 一.正反向查询进阶操作 二.聚合查询 三.分组查询 四.ORM再次添加字段 五.F与Q查询 五.ORM查询优化 六.事务操作 七.模型层常见字段 八.ORM常见字段参数 九.多对多三种创建方 ...
- Django Model各种操作 Meta 常用字段 一对多操作 多对对操作 F Q查询 聚合函数
Model操作 meta源信息 class CLS(models.Model):username = models.CharField(max_length=32)class Meta:db_tabl ...
- Day51python Django 多表操作 聚合查询、分组查询、F查询、Q查询
1聚合查询aggregate aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典,可以自己制定键. 1.# 计算所有图书的平均价格 books = mo ...
- django 中的聚合函数,分组函数,F 查询, Q查询
先以mysql的语句,聚合用在分组里, 对mysql中groupby 是分组 每什么的时候就要分组,如 每个小组,就按小组分, group by 字段 having 聚合函数 #举例 :求班里的平均 ...
- Django 时间查询、avg、acount、cum、F查询、Q查询
0. 回顾 上次的问题,on_delete 不需要重新修改或重复操作数据库就可以执行到结果 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021010420121 ...
最新文章
- HDU3247 Resource Archiver(AC自动机+BFS+DP)
- 用GPG保卫你的重要文件-GnuPG/Gpg4win使用说明
- Java基础学习总结(19)——Java环境变量配置
- Web Client Software Factory系列(3):View-Presenter模式
- Java多线程编程(1)--Java中的线程
- win下常用快捷鍵及其作用
- Win11系统Windows更新疑难解答出现问题怎么办?
- 181006扇贝有道每日一句
- 【仿真】Proteus8.9 下载与安装教程(超详细)
- java-pdf转word
- python bartender,python集成Bartender的多线程编程
- Sqli-Lab实验环境搭建(phpstudy环境安装、火狐浏览器插件安装、sqlmap安装、Sqli-Lab安装)
- html图片幻灯片效果,使用CSS3实现的超酷幻灯图片效果
- 需要良好的空气质量数据,希望您生活在一个富裕的社区
- 华为交换机添加用户及用户等级
- 《手把手教你读财报》- 读书总结
- 一位软件测试工程师的5年成长经历,这些职场黑话,你需要知道
- A - 小彭玉的扫荡食堂计划
- 计算机网络知识点总结(计网期末盲押系列)
- android 复制屏幕,iphone或者android的手机或者pad可以屏幕复制到Z1上了!
热门文章
- 世界女性科技群落(一):一面喑哑、一面高亢的非洲鼓
- PNG文件编码解析之PNG文件格式中的所有数据块以及标识
- “揭开意识的奥秘:认知相对论”及作者李玉鑑简介 (公号发“李玉鑑AI”下载PDF资料,欢迎转发、赞赏支持科普)
- docker-machine win10环境搭建及使用(hyperv虚拟机)
- Ubuntu Server 20.04 LTS 安装配置 PostgreSQL
- C语言二分查找算法[基础算法]
- 用java的二维数组做一个简易计算优惠小程序(附带源码)
- 字节跳动后端实习面经,一面+二面+三面(已收到offer)
- 月薪10k,20k,30k,40k及以上的程序员分别有何不同?
- 鸡尾酒分类和制作材料中英文名