[英]How to combine/merge more than one queryset in to single queryset django
I have a queryset
as below 我有一个queryset
如下
entries = [<Entry: Entry got issues>, <Entry: Entry Latest entry>, <Entry: Entry now tested>]
Each object
in the above queryset entries
will have a queryset as below 上面queryset entries
中的每个object
将具有一个queryset,如下所示
for entry in entries:
print entry.tags.all()
Result 结果
[<Tag: published>, <Tag: tags>, <Tag: needs>, <Tag: be>, <Tag: issues>, <Tag: to>]
[<Tag: abcd>]
[<Tag: abcd>, <Tag: nothing>]
so i want to merge the above three querysets in the result on to a single queryset as below 所以我想将结果中的上述三个查询集合并到单个查询集上,如下所示
[<Tag: published>, <Tag: tags>, <Tag: needs>, <Tag: be>, <Tag: issues>, <Tag: to>]
<Tag: abcd>, <Tag: abcd>, <Tag: nothing> ]
So how to merge/combine
three querysets in to one above in django ? 那么如何在django中将三个查询集合并merge/combine
为一个呢?
Use the |
使用|
operator. 运营商。 ie queryset = queryset1 | queryset2 | queryset3
即queryset = queryset1 | queryset2 | queryset3
queryset = queryset1 | queryset2 | queryset3
queryset = queryset1 | queryset2 | queryset3
But you can also use the &
operator to find intersection. queryset = queryset1 | queryset2 | queryset3
但您也可以使用&
运算符查找交集。 You have to make sure that all the querysets return are of the same objects ie Tag. 您必须确保所有查询集返回的都是相同的对象,即Tag。
What you want to do basically is 你基本上要做的是
queryset = entries[0].tags.all()
for entry in entries[1:]:
queryset = queryset | entry.tags.all()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.