【发布时间】:2018-11-11 13:25:18
【问题描述】:
我在查询具有多个 m2m 关系的模型时使用prefetch_related:
qs = context.mymodel_set.prefetch_related('things1', 'things2', 'things3')
所以当我这样做时不需要执行额外的查询来获取things1,它们应该已经被获取了:
r = list(qs)
r[0].things1.all()
但是如果我使用r[0].things1.exists() 会怎样?这会生成一个新的查询吗?还是会使用预取的信息?如果它生成一个新查询,这是否意味着为存在检查而使用r[0].things1.all() 更有效?
PS:缓存信息与数据库不同步并不让我担心这个特定问题。
【问题讨论】:
标签: python django django-1.8