0
タグの配列を検討してください。django結合フィルタ__inクエリ
各フォトセットにはタグと多対多の関係があります。
我々はまた、(タグのセットで構成)F、フィルタを持っている、と我々はF.
すなわちに含まれるすべてのタグを持つすべてのphotosetsを返すようにしたいです、。もしF = [ '緑'、 '犬'、 '猫']、私たちが望むすべて F.
のタグを持つすべてのフォトセットのインスタンス当然
トリックをしません、それはを返しますので、すべてのフォトセットは、私はそれが「Q」の表現を用いて同様のものを使用することも可能ですが、唯一の連言パラメータの有限量のために見えたことがわかりF.
のいずれかのメンバーが含まれています。これは、リストの理解を使用して行うことができますか?
ありがとうございます!
編集:解決:
解決策は明らかな方法で見つかりました。フィルタを連鎖するだけです...
results = PhotoSets.objects
for f in F:
results = results.filter(tags__in=[f])
results = results.all()
私はいつも顔を見つめていました!
感謝を。私が考え出した解決策がうまくいかなかったら、私はそれを試してみるだろう。どちらのアプローチが最も効率的であるか知っていますか? –
これらは効率が同等でなければなりません。いずれにしても、データベースは実際には1回だけヒットし、クエリはほぼ同じになるはずです。 –