【发布时间】:2022-01-22 04:44:20
【问题描述】:
标题说明了一切。
我们以这段代码为例:
objs = Model.objects.prefetch_related('model2').filter()
objs.first().model2_set.first().field
vs
objs = Model.objects.filter().prefetch_related('model2')
objs.first().model2_set.first().field
问题
当首先使用prefetch_related() 时,Django 是否会在不考虑.filter() 的情况下获取所有ManyToOne/ManyToMany 关系,并且在获取所有内容后应用过滤器?
IMO,这没关系,因为最后仍然执行了一个查询。
提前致谢。
【问题讨论】:
标签: python django django-models