Django:对观点中的倒退关系感到困惑

时间:2018-04-19 10:31:05

标签: django django-models foreign-keys

我有对象 CarMaker

class CarMaker(models.Model):
    name = models.CharField(max_length=100)

对象 CarModel 存储在变量 car_inst 中:

class CarModel(models.Model):
    maker = models.ForeignKey(CarMaker, on_delete=models.CASCADE)
    name = models.CharField(max_length=50, null=False, blank=False)
    serial_number   = models.CharField(max_length=50)

car_inst = CarModel.objects.get(id=foo)

我需要获得“拥有”它的 CarMaker

我尝试过:

maker = CarMaker.objects.get(id__in=car_inst.id)

这不起作用。我在网上看过使用向后关系的例子:

maker = carmaker.carmodel_set.all()

但这也不起作用。我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

要获得car_inst的制作者,您可以使用car_inst.maker。 反向关系,如果您需要获取与特定制造商maker.carmodel_set.all()相关的汽车列表,这将为您提供所选制造商的所有汽车型号。

答案 1 :(得分:1)

让我们一步一步地采取行动:

获取您想要CarModel的{​​{1}}对象:

CarMaker

现在,让我们获取与此对象关联的car_model = CarModel.objects.get(id=foo)

CarMaker