3
我的模型的相關圖像是在這裏:http://i.stack.imgur.com/xzsVU.png過濾
我需要包含誰具有相關的人與「老闆」的角色所有的貓一個QuerySet和「bob」的名字。
這個sql會顯示在下面。
select * from cat where exists
(select 1 from person inner join role where
person.name="bob" and role.name="owner");
此問題可以通過以下django過濾器解決兩個sql查詢。
people = Person.objects.filter(name="bob", role__name="owner")
ids = [p.id for p in people]
cats = Cat.objects.filter(id__in=ids)
我的實際設置比這更復雜,並且正在處理大型數據集。有一種方法可以用一個查詢來做到這一點嗎?如果不可能,那麼有效的選擇是什麼?
那不是發現有一個名爲鮑勃的獸醫和誰被任命喬治所有者貓嗎?我需要兩個人都有這個問題的貓。 – DivineSlayer 2011-04-20 17:53:03
我認爲除非使用'Q',否則篩選語句是'AND'ed。 – DTing 2011-04-20 17:55:27
沒關係!我只是與m2ms混淆。這樣可行 – 2011-04-20 18:12:08