微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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) # 多个集合求并集


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐