본문 바로가기

django orm에서 Q 객체를 사용하면 OR/AND 조건을 적용할 수 있습니다.

예제코드

# django orm에서 Q 객체 사용하기
from django.db.models import Q, F
from blog.models import Blog

# 블로그 제목에 'django'가 포함되거나 작성자가 'lee'인 쿼리
blogs = Blog.objects.filter(Q(title__contains='django') | Q(author='lee'))

# 블로그 내용에 'python'이 포함되지 않고 생성일자가 현재보다 과거인 쿼리
blogs = Blog.objects.exclude(Q(content__contains='python') & Q(created_date__gt=timezone.now()))

# 블로그 제목과 내용이 같은 쿼리
blogs = Blog.objects.filter(Q(title=F('content')))

Q 객체와 SQL 문의 성능 차이

예제코드

# Q 객체를 사용한 예
from django.db.models import Q
blogs = Blog.objects.filter(Q(title__contains='django') | Q(author='lee'))

# SQL 문을 사용한 예
blogs = Blog.objects.raw("SELECT * FROM blog WHERE title LIKE '%django%' OR author = 'lee'")

참고사이트

django 복잡한 filter 조건 연결할 때 Q object 를 이용해 봅시다.

 

django 복잡한 filter 조건 연결할 때 Q object 를 이용해 봅시다.

이번 시간에는 django의 Q object로 복잡한 filter를 조금 깔끔하게 작성하는 방법을 알아보겠습니다. 물론, 문서에 예제가 매우 잘 나와 있긴 합니다. 먼저, 데이터는 요래 있습니다. 작성자가 "alpha"

codingdog.tistory.com

Django 장고 ORM으로 OR/AND 사용하기(Q 사용)

 

Django 장고 ORM으로 OR/AND 사용하기(Q 사용)

# Django Queryset(ORM)으로 OR/AND 사용 방법 (WHERE절) # Q 활용방법 # SQL의 OR/AND 사용하는 방법 # 비전공자가 이해한 Django 1. AND AND 사용 방법은 간단합니다. filter 함수 안에 "Field명=값" 으로 표현하면 됩니

axce.tistory.com

비교우위

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.