我正在使用Django爲教育機構開發課程註冊網站。如何找到不在另一個指定查詢集中的Django查詢集中的實體?
假設我有兩個Django的查詢集,一個包括佔據會話1(組A)和一種的課程,包括在會話2(組B)的課程:
A = session1.courses.all()
B = session2.courses.all()
有許多重疊這兩個查詢集之間。
什麼是有效的方式來獲得集B內的課程,但不是在集A?
我相信這相當於從集合B中取出兩個集合的交集
謝謝!
我正在使用Django爲教育機構開發課程註冊網站。如何找到不在另一個指定查詢集中的Django查詢集中的實體?
假設我有兩個Django的查詢集,一個包括佔據會話1(組A)和一種的課程,包括在會話2(組B)的課程:
A = session1.courses.all()
B = session2.courses.all()
有許多重疊這兩個查詢集之間。
什麼是有效的方式來獲得集B內的課程,但不是在集A?
我相信這相當於從集合B中取出兩個集合的交集
謝謝!
A.exclude(pk__in = B)
應該工作
謝謝,這是訣竅! – dangerChihuahua007 2012-01-17 20:57:07
偉大的方法謝謝 – soField 2014-01-19 21:48:20
從版本1.11開始,django查詢集有一個內置的差異方法。我已經添加了它作爲未來參考的答案 – 2017-08-09 02:05:03