일지

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 라이브러리를 통해 출력해주는 것을 상정했다.

 

https://www.chartjs.org/

 

Chart.js

Simple yet flexible JavaScript charting library for the modern web

www.chartjs.org