我有一个查询集列表,如下所示。有没有办法将列表的所有这些查询集合并为一个查询集?此列表的查询集元素是动态确定的。如下例所示,列表中有三个查询集。在下一个假设迭代中,它可能是 40 个查询集。
capture_list =[<QuerySet [<Fields_Model: Fields_Model object (11)>]>,<QuerySet [<Fields_Model: Fields_Model object (12)>]>,<QuerySet [<Fields_Model: Fields_Model object (13)>]>]
答案 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)