【发布时间】:2020-05-17 02:45:38
【问题描述】:
我们想一次检索所有表记录如何在django orm中实现类似SQL查询。
示例 SQL 查询:
select *
from Company_info
inner join Bank_info on Bank_info.manufacturer = Company_info.manufacturer
inner join Company_info on Company_info.manufacturer = Company_info.manufacturer
inner join Transport_info on Transport_info.manufacturer = Company_info.manufacturer
代码:
class Manufacturer(models.Model):
name = models.CharField(max_length=42)
class Bank_info(models.Model):
account = models.CharField(max_length=42)
manufacturer = models.ForeignKey(Manufacturer, on_delete= models.CASCADE)
class Company_info(models.Model):
name= models.CharField(max_length=42)
manufacturer = models.ForeignKey(Manufacturer, on_delete= models.CASCADE)
class Transport_info(models.Model):
name= models.CharField(max_length=42)
manufacturer = models.ForeignKey(Manufacturer, on_delete= models.CASCADE)
【问题讨论】:
-
在 FoeignKey 字段中的模型 2、3 和 4 中添加相关名称并使用它。 Manufacturer.objects.all().prefetch_related('related_name2', 'related_name3', 'related_name4')。
-
谢谢你,它工作得很好
标签: python django postgresql django-models orm