django - 在 Django 中通过外键进行查询

标签 django django-models

如何在 Django 中遍历多个外键?我已经尝试了 django 文档中我能想到的一切,但我显然错过了一些东西(极端新手)。我有科学家、实验和理论的模型。

如果我想研究一个特定的理论(我们称之为“相对论”)并获取研究该理论的科学家的所有电子邮件列表(保存在正常的 django 用户模型中),我该怎么做?

<小时/>
class Experiment(models.Model)

    experimenter = models.ForeignKey(Scientist)
    theory = models.ForeignKey(Theory)


class Theory(models.Model)

    name = models.CharField(max_length=100)

class Scientist(models.Model)

    user = models.ForeignKey(User, unique=True)
    institution = models.CharField(max_length=20, null=True, blank=True)
<小时/>

这些是我重写的模型的简化版本,因此其中可能存在一些错误,但关系是正确的。

我尝试了 select_related()、get()、filter() 的各种组合,但无法弄清楚。预先感谢您的帮助!

最佳答案

User.objects.filter(scientist__experiment__theory__name=u'relativity')

关于django - 在 Django 中通过外键进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3365808/

相关文章:

django - 带有自定义管理器的 Django 1.0.2 中的多个数据库

python - Django Rest Framework 中带有请求参数的 GET 请求

python - 如何查询由多个外键组成的模型

python - 如何检查某个项目是否在中间表中并将其排除?

mysql - 以编程方式识别 Django 外键链接

javascript - 使用 JavaScript (JQuery) 将初始数据添加到 Django ModelForm

python - uWSGI服务器没有响应

python - 是否可以对 OuterRef 表达式进行算术运算?

python - Django、m2m 具有相同型号

python - django.db.utils.OperationalError : my_table has no column id error?