我有一个queryset
,如下所示
entries = [<Entry: Entry got issues>, <Entry: Entry Latest entry>, <Entry: Entry now tested>]
上述查询集object
中的每个entries
都有一个查询集,如下所示
for entry in entries:
print entry.tags.all()
结果
[<Tag: published>, <Tag: tags>, <Tag: needs>, <Tag: be>, <Tag: issues>, <Tag: to>]
[<Tag: abcd>]
[<Tag: abcd>, <Tag: nothing>]
所以我想将结果中的上述三个查询集合并到一个查询集中,如下所示
[<Tag: published>, <Tag: tags>, <Tag: needs>, <Tag: be>, <Tag: issues>, <Tag: to>]
<Tag: abcd>, <Tag: abcd>, <Tag: nothing> ]
那么如何在django中将merge/combine
三个查询集添加到上面的一个?
答案 0 :(得分:2)
使用|
运算符。即queryset = queryset1 | queryset2 | queryset3
但您也可以使用&
运算符来查找交集。您必须确保返回的所有查询集都是相同的对象,即Tag。
你想要做的基本上是
queryset = entries[0].tags.all()
for entry in entries[1:]:
queryset = queryset | entry.tags.all()