【发布时间】:2017-10-09 02:29:18
【问题描述】:
谁能说一下如何组合(合并)多个查询集。查询集的数量不固定。我尝试了下一个代码,但它没有按预期工作。如何解决这个问题?
first_list = []
for id in ids:
products = Product.objects.filter(company=id)
first_list.append(products)
final_list = list(chain(first_list))
此代码返回:
[<QuerySet [<1>, <2>]>, <QuerySet [<3>, <4>]>, <QuerySet [<5>, <6>]>]
我需要:
[<QuerySet [<1>, <2>, <3>, <4>, <5>, <6>]>,]
【问题讨论】:
-
您在寻找
Product.objects.filter(company_id__in=ids)吗? -
我不懂你。什么意思?
-
我不明白你到底想做什么,我想你想在你已经拥有的一组 id 中获得公司的所有产品(也假设公司是 FK)
-
这里是
in运算符docs.djangoproject.com/en/1.11/ref/models/querysets/#inEntry.objects.filter(id__in=[1, 3, 4])的官方文档,使用for声明 -
@Sayse 谢谢!这就是我要找的!你能不能再回答一次而不是评论。我可以标记你的答案。
标签: python django python-3.x django-1.10