[Django] Q()

mean_g·2022년 8월 7일
0

[ Python & Django ]

목록 보기
4/10

1. Q 객체란?

1) django ORM에서 spl의 query 문처럼 'or'조건을 쓰고 싶을 때 사용한다.

ex)

#sql - query문
select * from products where category=티제품 or sub_category=밀크티

#django ORM
Product.objects.filter(Q(category=티제품 | Q(sub_category=밀크티))

2) 사용을 위해
from django.db.models import Q를 해주어야 한다.

3) |와 &
q objects에서
| = where (조건) or (조건) 으로 하나라도 조건에 맞으면 모든 결괏값을 보여주는 합집합이다.
& = where(조건) and (조건) 으로 모든 조건을 만족해야지 해당 결괏값(모든 조건을 만족하는)을 보여주는 교집합이다.

조건을 계속 추가할 수도 있다.

4) Q()~~.objects.all()과 동일하다.
전체를 변수에 담아두는 느낌..!



+) 추가적으로 같이 사용할 django 메서드도 남겨놓는다.
gt (greater than) : >
lt (less than) : <
gte(greater than or equal) : >=
lte(less than or equal) : <=



+) 프로젝트에 사용하는 필터링을 위해 보고 있는데 역시 이론은 이해가 가지만 막상 사용하는 게 힘든 거 같다.
profile
Backend Dev

0개의 댓글