Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将多个queryset合并到单个queryset django中_Python_Django_Merge_Django Queryset - Fatal编程技术网

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、 e
queryset=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()