我有4个模型,我想检索它们之间的连接
MODELA
class ModelA(models.Model): product = models.ForeignKey(ModelB) group = models.ForeignKey(Group)
ModelB
class ModelB(models.Model): title = models.CharField()
ModelC
class ModelC(models.Model): product = models.ForeignKey(ModelB) group = models.ForeignKey(ModelD)
ModelD
class ModelD(models.Model): name = models.CharField()
现在我希望我的所有ModelA对象都与ModelB,ModelC和ModelD连接在一起
在sql中,这很容易做到.只需在表之间建立联接.
随着Django ORM我被卡住,因为我只能做前进的关系.
我这样做
ModelA.objects.all().select_related(product)
但我无法加入ModelC
我已经阅读了this article,但我不想在我的大清单上循环,做一件简单的事情!我想只打一次数据库.
我正在使用Django的最后一个版本,我希望已经有一个解决方案,我不知道.
谢谢.
解决方法
请参阅
prefetch_related上的文档.目前它只是开发人员,但会使用Django 1.4.如果你可以等,或者你可以在行李箱上运行.你将能够使用它.
在此期间,您可以尝试django-batch-select.它基本上用于相同的目的.