일지
2023.05.09
scarlet0star
2023. 5. 10. 22:33
백 오피스를 구현하기 위해서 django admin을 커스터마이징 하기보다는 API 뷰 형태의 새 앱을 통해 Chart.js로 출력하는 방향을 설정하였다. 뷰 형태는 조금 ORM 구성하는게 어려울 수는 있어도 그렇게 힘든 일은 아니지만 Chart.js를 사용하는 것은 나에게 큰 과제로 다가왔다. 프론트쪽은 솔직히 구성하기 힘들어하기 때문에 일단 예시들을 차근차근 살펴보는 중이다.
product_counts = (
Product.objects
.filter(created_at__gte=week_ago)
.annotate(date=TruncDate('created_at'))
.values('date')
.annotate(count=Count('id'))
.order_by('date')
)
작성한 APIView 중 일부분으로, 이 view는 일주일 내에 생성된 Product 모델의 수를 {"날짜" :"갯수"} 형태로 응답한다. 딕셔너리 형태로 GET 요청에 응답하면 프론트에서 받아서 Chart.JS 라이브러리를 통해 출력해주는 것을 상정했다.
Chart.js
Simple yet flexible JavaScript charting library for the modern web
www.chartjs.org