2012-03-26 102 views
0

我有一個博客模型與標籤對象的m2m關係。我希望每個博客都有多組標籤說[tagset1,tagset2 ......]。當用戶提交一些標籤集[usertagset1,usertagset2 .....]來檢索博客時,我必須返回所有包含 usertagset的博客作爲博客標記集的子集。在多對多關係中的其他組對象

我不確定最好的方式去用它最少沒有。的SQL查詢。 我是否應該創建一個新模型來保存博客標記集的信息,然後讓博客模型與這個新模型建立一個m2m關係?

回答

0

你可以嘗試過濾掉標籤逐一:

user_tags = [tag1, tag2, ... tagn] 
blogs = Blogs.objects.all() 
for tag in user_tags: 
    blogs = blogs.filter(tags=tag) # assuming 'tags' is your M2M field name 

每個過濾器()將縮小搜索範圍,直到有所有指定的標籤只有博客的剩餘。由於Django的查詢集是懶惰的並且可以組合,這將導致一個SQL查詢。

相關問題