(엑셀만큼 쉬운) Django Annotation/Aggregation

Django ORM을 강력하게 만들어주는 기능 중 하나는 바로 애너테이션(annotate)과 애그리게이션(aggregate)입니다. 이 두 기능이 명쾌하게 와닿지 않아서 사용하지 못하다가, 엑셀에 빗대어 이해해보니 제게는 도움이 되어서 해당 내용을 공유합니다. 시작하기 전에 표기법: 이건 Django 메서드 이름, 이건 필드나 값 을 나타냅니다. 메서드의 링크는 Django 공식 문서로 연결됩니다 모델…

django 쿼리에 조건적 annotate 붙이기

문제 모델 코드는 제일 아래에 적어두었습니다. 특정 창고에서 받은 발송장과 보낸 발송장을 참고하여, 물건의 남은 양을 파악하고 싶었다. 다시 말하면, 조건에 맞춰서 annotate를 만들 수 있을까? 개인적으로는 가독성과 유지보수성을 위해 SQL보다는 django ORM을 선호하는 편이다. 그래서 복잡한 쿼리 만들 때마다 이런 고생을 하는지도 annotate랑 F 표현식을 어떻게 조합하면 될 것도…