Django - ORM Coalesce() 활용

Django - ORM Coalesce() 활용
Photo by Pushparaj S / Unsplash

읽기도 어려워 Coalesce() 함수를 사용해 보자. 엄청 유용한데 잘 안 알려져 있는 듯

None, Null 이 리턴되는 경우 Exception 이 많이 나오는데, 이를 다 처리해 두지 않은 경우 의도치 않는 상황에 빠지게 되는 경우가 많다. 특히 aggregation 함수들을 사용하는 경우 기본적으로 어떤 값을 리턴해 주도록 해 주는 것이 좋다. 0이나 1 이런 값들을 기본값으로

당연히 잘 써둔 글들이 있다 😁

Django - Coalesce를 사용하여 aggregate가 None을 반환하는 것을 방지하기 · 초보몽키의 개발공부로그
total_price = WishBook.objects.filter(created_at__year='2017', created_at__month='09').aggregate(total=Sum('price'))['total'] or 0

# OR

from django.db.models.functions import Coalesce
total_price = cls.objects.filter(created_at__year=year, created_at__month=month).aggregate(total=Coalesce(Sum('price'), 0))['total']

예제에서 제공되는 or 도 괜찮은 방법 같다.

기본적으로 값이 없을 경우가 있는 Count(), Aggregate() 이런 함수들을 쓸 때 기본적으로 무조건 쓰도록 하자!

참고 페이지

  • 반드시 좀 읽어서 습득하자!
[Django] 반드시 알아야 할 5가지ORM 쿼리
비지니스 로직이 복잡한 상황에서 어떻게 ORM쿼리를 해야하는지 알아봅니다. 구글링으로 쉽게 찾기 어려운 ORM꿀팁을 가득 담았습니다!

..@vdekr9