How does one find the entities in a Django query set that are not in another specified query set?

瘦欲@ 提交于 2020-01-02 06:40:05

问题


I am using Django to develop a course registration site for an educational institution.

Suppose I have two Django query sets, one that comprises of courses that occupy session 1 (set A) and one that comprises of courses in session 2 (set B):

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

There is much overlap between these two query sets.

What is an efficient way to obtain the set of courses within set B, but not in set A?

I believe this is equivalent to taking out the intersection of the two sets from set B.

Thank you!


回答1:


A.exclude(pk__in = B) should work




回答2:


Starting from version 1.11, django query sets have a builtin difference method.

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

See my blog post on this for more detailed use cases.



来源:https://stackoverflow.com/questions/8867743/how-does-one-find-the-entities-in-a-django-query-set-that-are-not-in-another-spe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!