2011-03-28 71 views
1

我的工作,目前已經有很多多對多關係的應用程序(並最終將有更多),我試圖想聰明的方式(讀多對多的關係:在正確的方式)準確地查詢ORM的JOINed數據。智能查詢Django中,與用戶

這裏是什麼,我有一個樣品,我需要做什麼。我爲僞碼道歉。

ProjectModel: 
    owner = ForeignKey(User) #just one user 
    people = ManyToMany(User) #multiple users and theoretically can also contain the owner 

現在我想查詢是每一個用戶誰是「人」在當前用戶擁有項目的清單。

我沒有真正知道如何做到這一點。 __contains似乎並不適合這個......所以我認爲我的選擇基本上只是查詢每個項目並自己進行迭代。但是如果我知道如何通過ORM/SQL來獲得它,那將會更加豐富多彩。

謝謝!

回答

7
# users in projects owned by request.user 
users = User.objects.filter(projectmodel__owner=request.user).distinct() 

如果有很多m2ms的,你已經在你的people場限定的related_name,這就是你會在你的反向查找,而不是projectmodel使用什麼。

+1

輝煌。巧妙地完成。這正是我所期待的。似乎工作。 – 2011-03-28 22:50:20