Python Django预取\u相关并选择\u相关

Python Django预取\u相关并选择\u相关,python,django,django-models,Python,Django,Django Models,我想知道prefetch_related()和select_related()的行为。 如果我执行类似Model.objects.filter(…).prefetch_related()的操作,我会注意到发生的数据库查询要少得多。因此,我的初步猜测是,如果不在prefetch_related()中指定所需的查找,它将自动遍历所有模型字段并执行所需的工作。然而,我在网上找不到它的任何参考资料,这对我来说似乎很奇怪。我的猜测是正确的还是我遗漏了什么 来自(重点是我的): 在某些情况下,您可能希望调用

我想知道prefetch_related()和select_related()的行为。 如果我执行类似Model.objects.filter(…).prefetch_related()的操作,我会注意到发生的数据库查询要少得多。因此,我的初步猜测是,如果不在prefetch_related()中指定所需的查找,它将自动遍历所有模型字段并执行所需的工作。然而,我在网上找不到它的任何参考资料,这对我来说似乎很奇怪。我的猜测是正确的还是我遗漏了什么

来自(重点是我的):

在某些情况下,您可能希望调用select_related() 有很多相关的对象,或者你不知道所有的 关系在这些情况下,可以使用 没有参数。这将跟随它能找到的所有非空外键- 必须指定可为空的外键。在中不建议这样做 大多数情况下,由于它可能使基础查询更加复杂, 并返回比实际需要更多的数据


这个问题不清楚。你找不到什么参考资料?什么行为让您感到惊讶?基本上,当调用没有参数的select_related()时,django是否将其应用于所有字段?