小编Dar*_*arb的帖子

为什么 Django 的 RelatedManager 不会在目标对象上缓存调用查找的对象?

如果我有以下型号:

class Fubar(models.Model):
    name = models.CharField()

class Related(models.Model):
    fubar = models.ForeignKey(Fubar)
Run Code Online (Sandbox Code Playgroud)

如果我使用 .related_set 访问相关对象,我希望 ORM 会神奇地缓存父 Fubar 对象:

fubar = Fubar.objects.all()[0]
related = fubar.related_set.all()[0]
related.fubar
Run Code Online (Sandbox Code Playgroud)

这会产生 3 个查询,我希望它只会产生 2 个查询,因为 related.fubar 可以在此上下文中优化为我在其上调用 RelatedManager 的同一对象。

python django django-orm django-related-manager

5
推荐指数
1
解决办法
860
查看次数