1. ホーム
  2. python

Django のフィルタで AND を使うには?

2023-09-27 15:56:41

質問

Django でオブジェクトを取得するための "AND" フィルタはどのように作成すればよいですか? 例えば、一つのフィールドに二つの単語の組み合わせがある行を取得したいのですが、どうすればよいですか?

例えば、以下の SQL クエリを mysql データベースで実行すると、まさにそのようなことができます。

select * from myapp_question
where ((question like '%software%') and (question like '%java%'))

Django でフィルタを使用して、どのようにこれを実現するのですか?

どのように解決するのですか?

( 更新 : この答えはもう機能せず、シンタックスエラーが発生します。 keyword argument repeated )

mymodel.objects.filter(first_name__icontains="Foo", first_name__icontains="Bar")

更新 : この回答を書いてからずいぶん経ちますが、David Bergerがここで示しているように、Qオブジェクトメソッドを使うのが最良の方法であることは間違いありません。 DjangoのフィルタでANDを使用するにはどうすればよいですか?