「1」と「2」でタグ付けされた Result オブジェクトがあります。「one」と「two」のタグが付いたオブジェクトを照会しようとすると、何も返されません。
q = Result.objects.filter(Q(tags__name="one") & Q(tags__name="two"))
print len(q)
# prints zero, was expecting 1
Q で動作しないのはなぜですか? どうすればそれを機能させることができますか?
「1」と「2」でタグ付けされた Result オブジェクトがあります。「one」と「two」のタグが付いたオブジェクトを照会しようとすると、何も返されません。
q = Result.objects.filter(Q(tags__name="one") & Q(tags__name="two"))
print len(q)
# prints zero, was expecting 1
Q で動作しないのはなぜですか? どうすればそれを機能させることができますか?
q = Result.objects.filter(tags_ name _in=["one"]).filter(tags_ name _in=["two"])
複数の一意のオブジェクトが予想される場合は、.distinct() を追加して重複を削除します
動作する例では、2 つの python オブジェクト (クエリ セット) を終了します。これは、タグとしてone
ANDを持つ同じレコードに必ずしも適用されるとは限りません。two
ps: なぜin
フィルターを使うのですか?