django 如何找到两个查询集(querySet)的并集?

我有一个带有两个自定义管理器方法的Django模型。 每个对象都会根据对象的不同属性返回模型对象的不同子集。

有没有什么方法可以获取一个查询集,或者只是一个对象列表,那就是每个管理器方法返回的查询集的并集?

解决代码如下:

records = query1 | query2

如果不想拥有重复数据,这就需要增加一个方法:distinct()

records = (query1 | query2).distinct()

django版本在1.11以后支持union方法

q = query1.union(query2) # q将包含query1 + query2的所有唯一记录
q = query1.union(query2, all=True) # q将包含query1 + query2的所有记录(包括重复数据)
q = query1.union(query2,query3) # 多个集合求并集


相关文章

注:所有源代码均实测运行过。所有源代码均已上传CSDN,请有...
继承APIView和ViewSetMixin;作用也与APIView基本类似,提供...
一、Django介绍Python下有许多款不同的 Web 框架。Django是重...
本文从nginx快速掌握到使用,gunicorn快速掌握到使用,实现小...
uniapp微信小程序订阅消息发送服务通知
Django终端打印SQL语句 1 Setting配置: 2 默认python 使用的...