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에서 편하게 쓰면 된다.
'django' 카테고리의 다른 글
Celery 이해 및 필요성 with Django (0) | 2022.03.03 |
---|---|
Django workers process 메모리 공유 (0) | 2021.02.19 |
Django related_name(reverse 역참조 ) (0) | 2019.11.13 |
Django Docker 배포(production) (0) | 2019.10.25 |
헷가리는 Django Static 간략 정리 (0) | 2019.10.18 |