Django – ORM Coalesce() 활용

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

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

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

[
Django – Coalesce를 사용하여 aggregate가 None을 반환하는 것을 방지하기 · 초보몽키의 개발공부로그
![](assets/images/2023/02/U7slYy6.png?ssl=1)
](https://wayhome25.github.io/django/2017/09/02/django-queryset-aggregate-coalesce/)
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() 이런 함수들을 쓸 때 기본적으로 무조건 쓰도록 하자!

참고 페이지

  • 반드시 좀 읽어서 습득하자!
[
[Django] 반드시 알아야 할 5가지ORM 쿼리
비지니스 로직이 복잡한 상황에서 어떻게 ORM쿼리를 해야하는지 알아봅니다. 구글링으로 쉽게 찾기 어려운 ORM꿀팁을 가득 담았습니다!
![](assets/images/2023/02/0n3Q53XmFcbOrGWgo.png?ssl=1)
](https://chrisjune-13837.medium.com/django-%EB%8B%B9%EC%8B%A0%EC%9D%B4-%EB%AA%B0%EB%9E%90%EB%8D%98-orm-%EA%B8%B0%EC%B4%88%EC%99%80-%EC%8B%AC%ED%99%94-592a6017b5f5)

..@vdekr9

Share: Twitter Facebook
Bongjun Hur's Picture

About Bongjun Hur

BJ is a dev.

Seoul, Korea https://devbj.com