django - 如何访问相关对象的字段

标签 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)

最佳答案

给定您的外键和一对一字段,您想要的查询将如下所示

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

关于django - 如何访问相关对象的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52462059/

相关文章:

Django 将参数传递给模型中的自定义方法(或访问请求)

django - Django 模型中的隐藏字段

python - 在管理中从 ForeignKey 编辑字段

python - 从 Django 模型中过滤外键 ID

django - 与 AWS 和 Django 的持续集成

python - 确定网站是否使用 Django 开发

django-models - 自动为 OneToOne 字段选择相关

python - Django MySQL 如何停止外键约束?

django - haystack 没有索引我的多值

python - 如何使用 MySql 上的 Python Django 让应用程序在 Heroku 上运行? KeyError : '' , 代码=H10 描述 ="App crashed"