【问题标题】:How does one find the entities in a Django query set that are not in another specified query set?如何在 Django 查询集中找到不在另一个指定查询集中的实体?
【发布时间】:2012-02-10 16:04:57
【问题描述】:

我正在使用 Django 为教育机构开发课程注册网站。

假设我有两个 Django 查询集,一个包含占用会话 1(集合 A)的课程,另一个包含会话 2(集合 B)中的课程:

A = session1.courses.all()
B = session2.courses.all()

这两个查询集之间有很多重叠。

什么是获取集合 B 中的课程集合而不是集合 A 的有效方法?

我相信这相当于从集合B中取出两个集合的交集。

谢谢!

【问题讨论】:

  • 从 1.11 版本开始,django 查询集有一个内置的差异方法。我已将其添加为将来参考的答案

标签: django django-queryset


【解决方案1】:

A.exclude(pk__in = B) 应该可以工作

【讨论】:

    【解决方案2】:

    version 1.11开始,django查询集有一个内置的差异方法。

       C = A.difference(B) #A-B
    

    请参阅我的blog post,了解更多详细用例。

    【讨论】:

      猜你喜欢
      • 2016-05-09
      • 2018-03-27
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      相关资源
      最近更新 更多