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

Javascript – div 높이 조절

div 높이를 자바스크립트로 조절하고 싶어 여러가지 찾아 봤다.

근데 가장 중요한 키는 + "px" 라는 사실이 허망하군 암튼 머 아래 코드를 참고

설명>div_content div의 내용에 따라 height 크기가 변경되면 왼쪽에 있는 div_left div height 크기도 자동으로 변경된다. 출처: https://okkks.tistory.com/entry/javascript-다른-div-높이가-변경되면-자동으로-div-height-크기-조절하기

<script type="text/javascript">function setDivHeight(objSet, objTar)    {           var objSet   = document.getElementById(objSet);        var objTarHeight= document.getElementById(objTar).offsetHeight;        objSet.style.height  = objTarHeight + "px";    } //--></script>

Django Template – url 함수 호출

url 함수로 템플릿에서 원하는 함수를 호출할 수 있다. 호출 방법은 다음과 같다. 이 페이지에 나오는 예제 구문은 여기(https://wikidocs.net/70741) 페이지를 방문해서 더 자세한 내용을 살펴보시면 좋겠네요.

{% url 'detail' question.id %}

함수에 넘겨주는 인자가 있다면 다음과 같이 사용할 수 있다. 인자명 없이 그냥 순서대로 넣어줘도 동작한다. 대신 순서가 틀려지면 안된다. 😁

{% url 'detail' question_id=question.id %}
{% url 'detail' question_id=question.id page=2 %}

이상.