【发布时间】:2018-05-01 06:39:30
【问题描述】:
假设我有一个未评估的查询集列表:
q_list = [a.objects.all(), b.objects.all(),...]
我想在一次数据库调用中一次评估所有这些。我可以像这样遍历列表并单独评估它们:
evaluated_q_list = map(list, q_list)
但这会产生多个数据库查询。是否可以使用 Django ORM 在单个数据库查询中执行此操作?
【问题讨论】:
-
@Pabasara Ranathunga 这个问题是关于连接列表的,我想通过在单个调用中评估所有查询集来最小化往返时间。
-
q_list 不是已经被评估了吗?尝试打印 q_list 中每个元素的长度
-
不,它没有。这是一个小测试:
from django.db import connection l = [a.objects.all()] print(len(connection.queries)) # Will print 0
标签: python django django-orm