gpt4 book ai didi

django - 在反向关系上访问 prefetch_related 的字段

转载 作者:行者123 更新时间:2023-12-01 11:42:15 26 4
gpt4 key购买 nike

我有这个模型

class Animal(models.model):
name = models.CharField()

class Dog(Animal):
field = models.IntegerField()

class Owner(models.model):
animal = models.ForeignKey(Animal)
name = models.CharField()

现在假设我想要所有的狗和它们主人的名字。

dogs = Dog.objects.all().prefetch_related('owner_set')

如何从 dogs 访问 owner.name

最佳答案

你可以从owner_set获取:

[owner.name for dog in dogs for owner in dog.owner_set.all()]

select_related() 不同,prefetch_related() 会预缓存相关对象的数据,因此每次我们需要每只狗的 owner_set 时都不会访问数据库 - 请参阅 docs .

关于django - 在反向关系上访问 prefetch_related 的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18806539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com