django 查询具有外键的模型,检查该外键的 属性

django query a model that has a foreign key, checking a property of that foreign key

假设我有两个模型, model_0 model_1

model_0 定义如下

def model_0:
    ...
    foreign_key = models.ForeignKey(model_1)
    ...

model_1

def model_1:
    ...
    random_property = models.Charfield()
    ...

model_1 model_0[= 中的外键(可以是 manytomany 或其他) 15=]

如何在 model_1 对象中执行查询检查 model_0[= 的 属性 38=]

类似于model_0.objects.filter(model_0.random_property="Something")

我知道您可以使用 model_0.objectsl.filter(model_0="Instance of model 0")

这样的模型轻松执行查询,但我还没有看到任何方法来检查该对象的特定 属性

您“查看”了带有双下划线的关系 (__),因此您可以使用以下内容进行过滤:

model_0.objects.filter(<b>foreign_key__random_property='Something'</b>)

这将生成如下所示的查询:

SELECT model_0.*
FROM model_0
<b>LEFT OUTER JOIN model_1 ON model_1.id = model_0.foreign_key_id</b>
WHERE model_1.random_property = 'Something'

在你的情况下,它是由双下划线完成的,它看起来像这样 model_0.objects.filter(model_1__random_property="Something") 尝试阅读 Django 文档 here。他们真的很有帮助。