我已經得到的模型是這樣的堆棧快速計數(我在相對速記打字出來):與聯Django模型
class User:
pass
class ItemList:
pass
# A User can have more than one ItemList
# An ItemList can have more than one User
# Classic M2M
class ItemListOwnership:
user = fk(User)
itemlist = fk(ItemList)
# An ItemList has multiple Items
class Item:
itemlist = fk(ItemList)
我想要做的是顯示的簡單計數給定用戶(或用戶的現有查詢集)在其各個列表上有多少項目。 我需要計算整個M2M的差距。
這就是我卡住的地方。我很滿意純粹的SQL方法,如果這是唯一的作品,但我真的不想進入我發佈n + 1每個用戶查詢的情況(其中n是列表數a用戶)僅僅是一個個性化......
編輯:我不使用一個「真正的」 models.ManyToMany(..)
的關係,因爲我在ItemListOwnership
描述的關係稍微好一點的定義其它的東西。如果它是一個殺手,我也許可以移動到其他位置元數據,並擺脫ItemListOwnership
和ItemList