Django – ORM Coalesce() 활용
읽기도 어려워 Coalesce() 함수를 사용해 보자. 엄청 유용한데 잘 안 알려져 있는 듯
None, Null 이 리턴되는 경우 Exception 이 많이 나오는데, 이를 다 처리해 두지 않은 경우 의도치 않는 상황에 빠지게 되는 경우가 많다. 특히 aggregation 함수들을 사용하는 경우 기본적으로 어떤 값을 리턴해 주도록 해 주는 것이 좋다. 0이나 1 이런 값들을 기본값으로
당연히 잘 써둔 글들이 있다 😁
total_price = WishBook.objects.filter(created_at__year='2017', created_at__month='09').aggregate(total=Sum('price'))['total'] or 0# ORfrom django.db.models.functions import Coalescetotal_price = cls.objects.filter(created_at__year=year, created_at__month=month).aggregate(total=Coalesce(Sum('price'), 0))['total']
예제에서 제공되는 or 도 괜찮은 방법 같다.
기본적으로 값이 없을 경우가 있는 Count(), Aggregate() 이런 함수들을 쓸 때 기본적으로 무조건 쓰도록 하자!
참고 페이지
- 반드시 좀 읽어서 습득하자!
..@vdekr9