OR演算子を使用して、SQLクエリに相当するDjangoクエリセットを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/827384

  •  05-07-2019
  •  | 
  •  

質問

Djangoでは、複数の引数で filter を使用すると、SQLの AND 句に変換されます。 Django Bookから:

  

複数の引数を渡すことができます   物事を絞り込むfilter()   さらに:

>>> Publisher.objects.filter(country="U.S.A.", state_province="CA")
[<Publisher: Apress>]
     

これらの複数の引数は   SQL AND句に変換されます。したがって、   コードスニペットの例   次のように変換されます。

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE country = 'U.S.A.'
AND state_province = 'CA';

SQL OR 句に変換されるDjangoクエリセットを作成するにはどうすればよいですか?例:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE state_province = 'AZ'
OR state_province = 'CA'; 
役に立ちましたか?

解決

django.db.modelsで利用可能なQ演算子の使用

IE:

from django.db.models import Q
Publisher.objects.filter(Q(state_province="CA") | Q(state_province="AZ"))

こちらのドキュメントをご覧ください: http://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top