合并或联合动态创建的查询集列表 - Django
Posted
技术标签:
【中文标题】合并或联合动态创建的查询集列表 - Django【英文标题】:Merge or Union a list of dynamically created querysets - Django 【发布时间】:2021-09-03 13:46:58 【问题描述】:我有一个查询集列表,如下所示。有没有办法将列表的所有这些查询集合并到一个查询集中?该列表的查询集元素是动态确定的。如下例所示,它是列表中的三个查询集。在下一次假设的迭代中,它可能是 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】:您可以将这些与:
Fields_Model.objects<b>.none().union(</b>*capture_list<b>)</b>
因此,星号会将查询集“解包”为.union(…)
call [Django-doc] 的单独参数。
使用.union(…)
调用只会选择不同 对象,因此不会重复。如果要获取副本,可以all=True
参数:
Fields_Model.objects.none().union(*capture_list<b>, all=True</b>)
【讨论】:
以上是关于合并或联合动态创建的查询集列表 - Django的主要内容,如果未能解决你的问题,请参考以下文章