检查两个 Django 查询集是不是有任何共同的项目

Posted

技术标签:

【中文标题】检查两个 Django 查询集是不是有任何共同的项目【英文标题】:Checking whether two Django querysets have any items in common检查两个 Django 查询集是否有任何共同的项目 【发布时间】:2013-10-29 13:08:09 【问题描述】:

我在 Django 中有两个查询集。如何有效地检查它们是否有任何共同的元素,即两个查询集中是否存在任何元素?

【问题讨论】:

【参考方案1】:

您可以检查是否存在交叉路口:

(qs1 & qs2).exists()

【讨论】:

【参考方案2】:

在Django 1.11 中,只需queryset1.intersection(queryset2)

【讨论】:

【参考方案3】:

您可以像集合一样使用查询集:

intersection = queryset1 & queryset2

intersection 将是两个查询集的交集

【讨论】:

以上是关于检查两个 Django 查询集是不是有任何共同的项目的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法检查字符串是不是是 django 查询集的有效过滤器?

在 C++ 中检查两个元素是不是有共同的元素

如何检查一个元素是不是存在于 Django 查询集中?

检查 django 中的空查询集

在Django中通过反向存在检查过滤查询集

Jinja2 - 检查一个查询集元素是不是在另一个