假设我有两个模型, 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
中的外键(可以是许多键)如何在 model_1 对象中执行查询,以检查 model_0
的属性类似model_0.objects.filter(model_0.random_property="Something")
我知道您可以使用model_0.objectsl.filter(model_0="Instance of model 0")
这样的模型轻松执行查询,但是我还没有找到任何方法来检查该对象的特定属性
答案 0 :(得分:1)
您通过双下划线(__
)来“浏览”一个关系,因此可以使用:
model_0.objects.filter(foreign_key__random_property='Something')
这将使查询如下:
SELECT model_0.*
FROM model_0
LEFT OUTER JOIN model_1 ON model_1.id = model_0.foreign_key_id
WHERE model_1.random_property = 'Something'
答案 1 :(得分:1)
在您的情况下,通过双下划线完成,看起来像这样model_0.objects.filter(model_1__random_property="Something")
尝试阅读Django文档here。他们真的很有帮助。