私はPerson、Food、Flavorという3つのモデルがあるとします。Django - フィルタリング中に多対多オブジェクトを1つのエンティティとして扱う
PersonとFlavorは多対多の関係を共有しています(多くの味が好きかもしれません)。
フードとフレーバーは多対多の関係を共有しています(フードには多くのフレーバーがあります)。
特定の人のために、私はその人の味のサブセットである一連の味を持っているすべての食品を返したいと思います。例えば
、
personA.flavor.all() - > '辛い '甘い'、 '苦い']
foodA.flavor.all() - > [ '辛いです' '甘い']
foodB.flavor.all() - > [ 'スパイシー、 '苦い']
foodC.flavor.all() - > ['] '「、' 苦い脂っこい
私は、foodAとfoodBを含むQuerySetを返すように、DjangoのフィルタをFood.objectsに使用したいと思います。
ユーザーのフレーバーをセットに変換し、各フードのフレーバーのリストでissupersetを呼び出して(あらかじめ定義されたリストにそのフードを追加しても)同様の結果が得られることは理解していますが、 djangoモデルのフィルタ関数を含むより優雅な解決策があれば、リストの代わりにQuerySetを返してくれるのだろうかと疑問に思います。
ご協力いただきありがとうございます。
http://docs.djangoproject.com/en/dev/topics/db/queries/#spanning-multi-valuated-relationships – vartec
あなたはどのバージョンのDjangoを使用していますか? –
また、何をしようとしていますか?あなたは疑似コードのクエリを与えることができますか?あなたの質問の最初の部分は、あなたがFoodのクエリーセットからフレーバーのクエリーセットを見つけようとしているように聞こえます。第二の部分は、あなたが食べ物の質問集を取得しようとしているように聞こえる。 –