gpt4 book ai didi

django - 通过反向外键关系过滤使用存在的元素

转载 作者:行者123 更新时间:2023-12-01 11:57:19 25 4
gpt4 key购买 nike

我模型的相关图片在这里:http://i.stack.imgur.com/xzsVU.png

我需要创建一个查询集,其中包含所有猫,这些猫的关联人员角色为“owner”且名称为“bob”。

此操作的 sql 如下所示。

select * from cat where exists 
(select 1 from person inner join role where
person.name="bob" and role.name="owner");

这个问题可以用下面的 django 过滤器在两个 sql 查询中解决。

people = Person.objects.filter(name="bob", role__name="owner")
ids = [p.id for p in people]
cats = Cat.objects.filter(id__in=ids)

我的实际设置比这更复杂,并且要处理大型数据集。有没有一种方法可以通过一个查询来做到这一点?如果不可能,什么是有效的替代方案?

最佳答案

我很确定这是您的查询:

cats = Cat.objects.filter(person__name='bob', person__role__name='owner')

在这里阅读关于 look ups spanning relationships 的信息

关于django - 通过反向外键关系过滤使用存在的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5734377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com