我有4个模型,我想检索它们之间的联接
型号A
class ModelA(models.Model): product = models.ForeignKey(ModelB) group = models.ForeignKey(Group)
型号B
class ModelB(models.Model): title = models.CharField()
型号C
class ModelC(models.Model): product = models.ForeignKey(ModelB) group = models.ForeignKey(ModelD)
型号
class ModelD(models.Model): name = models.CharField()
现在,我希望将所有 ModelA 对象与 ModelB , ModelC 和 ModelD结合在一起。 在sql中,这很容易做到。只是在表之间进行联接。使用Django ORM时,我会卡住,因为我只能做正向关系。
我在做这个
ModelA.objects.all().select_related(product)
但是我不能加入ModelC,我已经阅读了这篇文章,但是我不想遍历我的大清单,做一件简单的事情!而且我只想打一次数据库。
我使用的是Django的最新版本,希望我已经知道了解决方案。
谢谢你。
请参阅有关prefetch_related的文档。目前仅是开发人员,但将在Django 1.4中使用。如果您可以等待,或者可以在后备箱上运行。您将可以使用它。
同时,您可以尝试django-batch-select。本质上,它具有相同的目的。