gpt4 book ai didi

django - 如何在 Django 中通过 "filter" "exists"?

转载 作者:行者123 更新时间:2023-12-04 16:32:48 27 4
gpt4 key购买 nike

我想通过某个子查询是否返回任何结果来过滤查询集。在 SQL 中,这可能如下所示:

SELECT * FROM events e WHERE EXISTS
(SELECT * FROM tags t WHERE t.event_id = e.id AND t.text IN ("abc", "def"))

换句话说,检索使用指定标签之一标记的所有事件。

我如何在模型上使用 Django 的 QuerySet API 来表达这一点 EventTag ?

最佳答案

你可以这样做:

q = Event.objects.filter(tag__text__in = ['abc', 'def'])

假设有一个 ForeignKey来自 TagEvent .

说明 : 您正在过滤 Event基于特定条件的对象。使用双下划线语法访问 text Tag 的属性实例,然后附加 IN健康)状况。您不必担心外键的加入; Django 在幕后为你做这件事。如果您想查看生成的查询,可以打印它:
print q.query

关于django - 如何在 Django 中通过 "filter" "exists"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3944497/

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