OR 연산자를 사용하여 SQL 쿼리와 동등한 Django 쿼리 세트를 어떻게 작성합니까?
-
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
제휴하지 않습니다 StackOverflow