【发布时间】:2018-07-31 22:10:48
【问题描述】:
我正在尝试找出一种在尽可能短的时间内执行此查询的方法。
number_of_results = 25
results = []
foreign_keys = [1,2,3,4,5]
for key in foreign_keys():
results.append(Model.objects.filter(foreign_key=key)[:number_of_resutlts])
即使是单个查询集,也没关系。我想要完成的是减少数据库查询的数量。我的数据库是 PostgreSQL 10。
如何进一步简化这一点?
【问题讨论】:
-
.filter(foreign_key__in=[1,2,3,4,5])呢? -
@gogaz 为每个键返回
n结果吗? -
__in 将为您提供所有具有 foreign_key 为 1,2,3,4,5 的模型对象
-
它的分组依据和限制结果集。我认为没有一个步骤可以通过 Django 实现这一目标。
-
@NihalSharma 原始 sql 怎么样?
标签: python django django-queryset django-orm