본문 바로가기

Django

2022-11-29 개발일기 [Django, Q]

반응형

프로젝트 종료 후 WMS 개발로 인하여 다시 Django를 사용하게 되었다 이번에는 TOAST GRID를 이용하여 Django Queryset을 시각화 한후 각 열에 해당하는 고유값을 APIView를 이용하여 get한 후 DRF Q필터를 사용하여 현재 model에 있는데 Queryset과 매칭 후 다시 JSON형식으로 Toast grid가 있는 template으로 렌더링 해주면 끝! 

 

API

class Table(APIView):
    def get(self, request):
        req = request.GET
        result = {
            'result': 'false',
            "data": {
                "contents": []
            }
        }

        if req.get('action') == 'product_search':

            item_list = MaPitem.objects.all()
            key = req.get('prod_name')

            prodata = item_list.filter(
                Q(nm_item__icontains=key)
            )

            testdata = list(prodata.values())

            result = {
                "result": "true",
                "data": {
                    "contents": testdata
                }
            }

        return JsonResponse(result)

script

sub01_02_grid.on('click', ev => {
    if (ev.columnName === 'cd_item') {
        let product_code = sub01_02_grid.getRow(ev.rowKey).cd_item
        let tgmodal = $('#sub01_02_modal2')
        let url = '{% url 'VPHI:getmodal' %}'
        const tgdata = {
            action: 'product_detail',
            tgid: product_code
        }
        modalajax2(url, tgdata, tgmodal)


    }
})

$("#search_info").on('click', function () {
    let prod_name = $("#prod_name").val()
    const obj = {};
    obj['prod_name'] = prod_name
    obj['action'] = 'product_search'
    sub01_02_grid.readData(1, obj, false)
});
반응형