OR 연산자를 사용하여 SQL 쿼리와 동등한 Django 쿼리 세트를 어떻게 작성합니까?

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

  •  05-07-2019
  •  | 
  •  

문제

Django에서는 사용을 알고 있습니다 filter 여러 인수가 SQL로 변환됩니다 AND 조항. Django 책에서 :

여러 인수를 Filter ()로 전달하여 더 좁힐 수 있습니다.

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

이러한 다중 주장은 SQL과 조항으로 번역됩니다. 따라서 코드 스 니펫의 예는 다음과 같이 번역됩니다.

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

SQL로 변환되는 django 쿼리 세트를 어떻게 만드나요? OR 조항? 예를 들어:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE state_province = 'AZ'
OR state_province = 'CA'; 
도움이 되었습니까?

해결책

django.db.models에서 사용 가능한 Q 연산자를 사용합니다

즉:

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