bal*_*oth 3 django orm django-models
我有这个型号
class Animal(models.model):
name = models.CharField()
class Dog(Animal):
field = models.IntegerField()
class Owner(models.model):
animal = models.ForeignKey(Animal)
name = models.CharField()
Run Code Online (Sandbox Code Playgroud)
现在假设我想要所有狗和它们的主人的名字.
dogs = Dog.objects.all().prefetch_related('owner_set')
Run Code Online (Sandbox Code Playgroud)
如何访问owner.name的dogs?
你可以从owner_set:
[owner.name for dog in dogs for owner in dog.owner_set.all()]
Run Code Online (Sandbox Code Playgroud)
与来自相关对象的预先缓存数据不同select_related(),prefetch_related()因此每次我们需要每只狗拥有一个owner_set时,这不会打到数据库 - 请参阅docs.
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |