[PL]/Python
[Django] Django ORM
객과 함께.
2021. 9. 13. 18:00
기본 SQL절에서 Like에 대한 django ORM에서 표현 방법
query_set = TableName.objects.filter( field_name__contains = search_pattern )
=> SELECT * FROM TableName WHERE field_name like '%search_pattern%'
query_set = TableName.objects.filter( field_name__startswith = search_pattern )
=> SELECT * FROM TableName WHERE field_name like 'search_pattern%'
query_set = TableName.objects.filter( field_name__endswith = search_pattern )
=> SELECT * FROM TableName WHERE field_name like '%search_pattern'
Aggregate
일부분을 가져 왔습니다. (Django ORM을 이용해 테이블의 컬럼의 합 구하기 )
복수 개의 item이 있고 카테고리 번호가 3번인 상품들에 한해서 price의 합을 구하고 싶으면 아래와 같이 할 수 있다. Sum 함수를 임포트 해야하고 인자로써 합계를 구하려는 필드명을 적어주어야 한다.
# Sum 함수를 임포트 해주어야 한다
from django.db.models import Sum
total_price = Item.objects.filter(category=3).aggregate(Sum('price'))
aggregate의 결과를 total_price라는 변수에 저장을 했다. aggregate의 결과 값은 dict형으로 반환되며 아래와 같이 사용하면 된다.