Django의 Q()객체

송용진·2025년 6월 4일

Python / Django

목록 보기
2/24
post-thumbnail

Q()

Q()는 Django의 ORM에서 복잡한 조건
(특히 OR, AND, NOT)을 표현할 수 있게 해주는 쿼리 객체

Q() 사용 예시

combined_schedule_queryset = 
Schedules.objects.filter(schedule_id__in=related_schedule_id_set).
filter(Q(schedule_start__month__in=related_month) | 
Q(schedule_end__month__in=related_month))
.values_list("schedule_start", "schedule_end").distinct()

대응되는 Q() 미사용 예시

related_schedule_queryset1 = 
Schedules.objects.filter(
    schedule_id__in=related_schedule_id_set,
    schedule_start__month__in=related_month
).values_list("schedule_start", "schedule_end").distinct()

related_schedule_queryset2 = 
Schedules.objects.filter(
    schedule_id__in=related_schedule_id_set,
    schedule_end__month__in=related_month
).values_list("schedule_start", "schedule_end").distinct()

combined_schedule_queryset = set(chain(related_schedule_queryset1, related_schedule_queryset2))
profile
개발자

0개의 댓글