如何访问相关对象的字段

时间:2018-09-23 00:49:30

标签: django django-models

我正在尝试在设备模型中存储与老师关联的校园。我尝试创建模型方法,但无法从相关模型访问它。

class Campus(models.Model):
    name = models.CharField(max_length=20)

    def __str__(self):
        return self.name

class Teacher(models.Model):
    campus = models.OneToOneField(Campus, on_delete=models.CASCADE, default="Not Assigned")

class Device(models.Model):
    owner = models.ForeignKey(Teacher, on_delete=models.CASCADE)

1 个答案:

答案 0 :(得分:2)

鉴于您的外键和一对一字段,您想要的查询看起来像

device_queryset = Device.objects.all()

for device in device_queryset:
    print(device.owner.campus.name)

在Device的实例上,您可以通过引用字段owner来访问教师模型,该字段是Teacher的外键。一旦进入Teacher,就可以访问其属性,例如campus,依此类推。

您可能会发现有关字段查找的文档很有用https://docs.djangoproject.com/en/2.1/ref/models/querysets/#id4