合并或联合动态创建的查询集列表 - Django

时间:2021-06-18 21:32:39

标签: python-3.x django django-models django-queryset

我有一个查询集列表,如下所示。有没有办法将列表的所有这些查询集合并为一个查询集?此列表的查询集元素是动态确定的。如下例所示,列表中有三个查询集。在下一个假设迭代中,它可能是 40 个查询集。

capture_list =[<QuerySet [<Fields_Model: Fields_Model object (11)>]>,<QuerySet [<Fields_Model: Fields_Model object (12)>]>,<QuerySet [<Fields_Model: Fields_Model object (13)>]>]

1 个答案:

答案 0 :(得分:2)

您可以将它们与:

Fields_Model.objects.none().union(*capture_list)

这里的星号因此会将查询集“解包”为 .union(…) call [Django-doc] 的单个参数。

带有 .union(…) 的调用只会选择不同的 对象,因此不会重复。如果要获取重复项,可以使用 all=True 参数:

Fields_Model.objects.none().union(*capture_list, all=True)
相关问题