1

我有一个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> ]

那么如何merge/combine在 django 中将三个查询集合二为一呢?

4

1 回答 1

2

使用|运算符。iequeryset = queryset1 | queryset2 | queryset3 但是您也可以使用&运算符来查找交叉点。您必须确保所有返回的查询集都是相同的对象,即标签。

你想做的基本上是

queryset = entries[0].tags.all()
for entry in entries[1:]:
    queryset = queryset | entry.tags.all()
于 2013-09-03T10:04:37.647 回答