我的Django 2.2项目中有以下模型:
class ModelA(models.Model):
ModelA_id = models.UUIDField('ModelA ID', default = uuid.uuid4)
class ModelB(models.Model):
ModelB_id = models.UUIDField('ModelB ID', default = uuid.uuid4)
ModelA = models.ForeignKey(ModelA, on_delete=models.CASCADE)
class ModelC(models.Model):
ModelC_id = models.UUIDField('ModelC ID', default = uuid.uuid4)
ModelB = models.ForeignKey(ModelB, on_delete=models.CASCADE,)
class ModelD(models.Model):
ModelD_id = models.UUIDField('ID', default = uuid.uuid4)
ModelC = models.ForeignKey(ModelC, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
如您所见,模型嵌套方式如下:
ModelD has FK to ModelC
ModelC has FK to ModelB
ModelB has FK to ModelA
如果我这样做:
ModelD.objects.filter(pk=0).select_related('ModelC__ModelB__ModelA')
这是否意味着在单个(或有限的)数据库请求中一次查询所有数据?我假设这也意味着它会将所有从ModelD开始的数据引用放入内存,对吗
我的最终目标是总结有多少个ModelD引用ModelC,哪些(不是多少)ModelC引用ModelB,最后是哪些ModelB引用ModelA
目前没有回答
相关问题 更多 >
编程相关推荐