是否可以访问由 ForeignKey Django 连接的不同表的值

Posted

技术标签:

【中文标题】是否可以访问由 ForeignKey Django 连接的不同表的值【英文标题】:Is it possible to access the value of different tables connected by ForeignKey Django 【发布时间】:2021-09-21 05:35:44 【问题描述】:

所以我为这个问题创建了一个小的数据库关系:

from django.db import models

# Create your models here.


class Poll(models.Model):

    title = models.CharField(max_length=255)
    date_created = models.DateTimeField(auto_now_add=True)
    is_active = models.BooleanField(default=True)

    def __str__(self):

        return self.title



class Option(models.Model):

    title= models.CharField(max_length=50)
    poll = models.ForeignKey(Poll, on_delete=models.CASCADE)
    desc = models.CharField(max_length=255)

    def __str__(self):

        return self.title



class Voter(models.Model):

    name = models.CharField(max_length = 255)
    option = models.ForeignKey(Option, on_delete=models.CASCADE)

    def __str__(self):

        return f'self.name - self.option'

所以我有两个问题:

    是否可以从Voter 模型的__str__ 函数访问Option 模型的desc 字段的值?

    是否可以从Voter模型的__str__函数访问Poll模型的date_created字段的值?

非常感谢!

【问题讨论】:

【参考方案1】:

您可以使用. 访问相关模型和字段,并且由于您的模型的关系,您可以执行以下操作。

1-self.option.desc

2-self.option.poll.date_created

【讨论】:

虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。

以上是关于是否可以访问由 ForeignKey Django 连接的不同表的值的主要内容,如果未能解决你的问题,请参考以下文章

可以在 Django 中执行条件 ForeignKey.on_delete 吗?

django admin中的ForeignKey字段

django ORM中的表关系

Django Admin 中的 ForeignKey 或 ManyToMany 字段搜索

在 django 中删除 ForeignKey 时在相关模型上发出信号

Django - Admin 中的 ForeignKey 字段初始值定义