簡體   English   中英

如何將多個查詢集合並/合並到單個查詢集中

[英]How to combine/merge more than one queryset in to single queryset django

我有一個queryset如下

entries = [<Entry: Entry got issues>, <Entry: Entry Latest entry>, <Entry: Entry now tested>]

上面queryset entries中的每個object將具有一個queryset,如下所示

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為一個呢?

使用| 運營商。 queryset = queryset1 | queryset2 | queryset3 queryset = queryset1 | queryset2 | queryset3 queryset = queryset1 | queryset2 | queryset3但您也可以使用&運算符查找交集。 您必須確保所有查詢集返回的都是相同的對象,即Tag。

你基本上要做的是

queryset = entries[0].tags.all()
for entry in entries[1:]:
    queryset = queryset | entry.tags.all()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM