我有一个带有两个自定义管理器方法的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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐