0
考慮一個標籤數組,T。django conjunctive filter __in查詢
每個PhotoSet都有與標籤的多對多關係。
我們也有一個過濾器,F(由一組標籤的),我們想返回誰已包含在F.
即所有標籤全部的photosets ,.如果F = [ '綠色', '狗', '貓'],我們希望有所有在F.
標籤每PhotoSet例如自然
不會做的伎倆,因爲它返回每 PhotoSet包含F.
我看到它可以利用「Q」表達式中使用類似的事情的任何成員,但似乎只針對合取參數數量是有限的。這是否可以使用列表理解來完成?
在此先感謝!
編輯 - 解決方案:
我發現解決方案使用一種明顯的方式。簡單地鏈接過濾器...
results = PhotoSets.objects
for f in F:
results = results.filter(tags__in=[f])
results = results.all()
盯着我整個時間!
感謝您的答覆。如果我想出的解決方案不起作用,我會嘗試。哪個順便說一下,你知道哪種方法最有效嗎? – 2012-02-20 22:37:56
它們的效率應該相當。無論哪種方式,數據庫實際上只被擊中一次,查詢應該大致相同。 – 2012-02-20 22:41:57