Q()

송용진·2025년 11월 18일

Python / Django

목록 보기
18/23

Q()

Q()는 Django ORM에서
AND/OR/NOT 같은 복합 논리 조건을 표현하기 위해 쓰는 객체

from django.db.models import Q
from myapp.models import User

# 1.OR 조건 (가장 자주 쓰임)
# 이름이 'Alice' 이거나 이메일이 'bob@example.com' 인 사용자
qs = User.objects.filter(Q(first_name='Alice') | Q(email='bob@example.com'))

# 2.AND 조건 (명시적으로 쓸 때)
# 이름이 'Alice' 이고, 활성 사용자
qs = User.objects.filter(Q(first_name='Alice') & Q(is_active=True))

# 3.NOT 조건
# 활성 사용자를 제외한 모든 사용자
qs = User.objects.filter(~Q(is_active=True))
# 혹은 exclude 로 같은 효과
qs = User.objects.exclude(is_active=True)
profile
개발자

0개의 댓글