Python 如何将多个queryset合并到单个queryset django中
我有一个Python 如何将多个queryset合并到单个queryset django中,python,django,merge,django-queryset,Python,Django,Merge,Django Queryset,我有一个queryset如下 entries = [<Entry: Entry got issues>, <Entry: Entry Latest entry>, <Entry: Entry now tested>] 结果 [<Tag: published>, <Tag: tags>, <Tag: needs>, <Tag: be>, <Tag: issues>, <Tag: to>]
queryset
如下
entries = [<Entry: Entry got issues>, <Entry: Entry Latest entry>, <Entry: Entry now tested>]
结果
[<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中将三个查询集合并到上面的一个查询集中呢?使用
|
操作符。i、 equeryset=queryset1 | queryset2 | queryset3
但您也可以使用和操作符查找交叉点。您必须确保返回的所有查询集都是相同的对象,即标记
你想做的基本上是
queryset = entries[0].tags.all()
for entry in entries[1:]:
queryset = queryset | entry.tags.all()
但是我像上面一样从for循环中获取查询集,那么如何使用for循环中的
或&
合并它们呢?
queryset = entries[0].tags.all()
for entry in entries[1:]:
queryset = queryset | entry.tags.all()