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

    2019年9月21日 18:50   91 人阅读  0 条评论   编辑

我有一个带有两个自定义管理器方法的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) # 多个集合求并集


本文地址:http://www.chenxm.cc/article/910.html
版权声明: 本文为原创文章,版权归  陈新明  所有,欢迎分享本文,转载请保留出处!
PREVIOUS: Django 接收自定义请求头部(headers)详解
NEXT: django queryset为什么使用count 而不是使用len方法
 相关文章  关键词:

 发表评论

还没有留言,还不快点抢沙发?