django上的三表关系
我试图用三种模型做一些非常基本的事情:django上的三表关系,django,django-models,Django,Django Models,我试图用三种模型做一些非常基本的事情: class Car(models.Model): country = models.ForeignKey(Country) company_name = models.CharField(max_length=50) continent = models.CharField(max_length=50) class CountryProfile(models.Model): country = models.ForeignKey(
class Car(models.Model):
country = models.ForeignKey(Country)
company_name = models.CharField(max_length=50)
continent = models.CharField(max_length=50)
class CountryProfile(models.Model):
country = models.ForeignKey(Country)
minimum_wage = models.IntField()
class Country(models.Model):
name = models.CharField(max_length=50)
基本上,Car指向Country,CountryProfile也指向Country。我想知道我怎么能得到所有汽车公司的名称,大陆等于某个东西,最低工资与各自汽车公司的国家相关,而不必做两次db电话
谢谢 在查询
汽车时提取国家/地区的详细信息非常容易Car
有一个外键指向Country
,而select_related()
就可以了
Car.objects.select_related().filter()
但是(据我所知,如果我错了,请纠正我)Django不允许您使用select\u related()
调用选择“反向关系”。这意味着您无法从国家/地区
使用选择相关的
呼叫接听国家/地区档案
。这反过来意味着您将触发两个查询
如果您使用的是Django 1.2,并且愿意退回到它,那么您可以使用单个(join)查询获得带有附加信息的Car
实例。因此,我想没有比这更有效的方法了。谢谢你的回复!如果您不介意离开Django ORM,有几个选项。1) 如上所述,使用Django ORM和自定义SQL查询的组合。2) 这个更激进。在这种情况下,使用SQLAlchemy处理连接。有关示例,请参见。