首页 > 解决方案 > 如何在 Django 中预取嵌套数据?

问题描述

我有以下型号:

class Contract:
    products = models.ManyToManyField(
        to="Product",
        through="ContractProductThroughModel",
        related_name="contracts"
    )

class Product:
   garage = models.ForeignKey(
        to="Garage",
        on_delete=models.CASCADE
    )

class Garage:
    ...

有没有办法预取所有车库的所有合同?我试过这样的答案

garages = Garage.objects.all().prefetch_related("product_set").prefetch_related(Prefetch("product_set__contracts", to_attr="cached_contracts"))

但我想像这样访问每个车库对象的缓存合同garage.cached_contracts

那可能吗?

标签: pythondjango

解决方案


推荐阅读