Django의 queryset을 JS에서 json으로 사용하고자 한다.

1. Django에서 queryset을 json으로 dump해야되고

2. JS에서는 그 dump한 데이터를 escape 처리 해주고 사용하면된다.

 

 

Django Queryset
    def get(self, request):
        car_id = request.GET.get('car_id', None)
        pallet_id = request.GET.get('pallet_id', None)
        ymd = request.GET.get('ymd', None)
        orderList: Manager = OrderList.objects.annotate(test=F('pallet__seq'))\
            .filter(Q(ymd=ymd), Q(pallet__car_id=car_id), Q(pallet_id=pallet_id)).values()
        rows = json.dumps(list(orderList))
        return render(request, 'release/releasetReport.html', {'rows': rows})

orderList 변수에 Queryset을 담는다. 그 내용은 values로 인해서 Model instance가 아니라 dictionary !

그다음 python에서 표준으로 제공하는 json을 불러와 dumps를 해준다. 이 때 orderList의 타입은 Queryset이라서 에러가 나니 list로 변환 해줘야 된다.

 

 

In Javascript
<script>
    let rows = {{ rows|safe }};
    console.log(rows);
</script>

js 파일에서 | safe 라는 템플릿 태그를 사용해주면 알아서 escape 해주고 배열로 사용할 수 있다.

 

아래의 결과값이 도출된다. js에서 편하게 쓰면 된다.

+ Recent posts