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) : <=