2012-03-26 16 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のQuerySetsは怠惰で、組み合わせることができるので、これは単一のSQLクエリになります。

関連する問題