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