본문 바로가기

Django

2022-06-15 개발일기 [Django]

반응형

오늘은 Toast grid 내부 데이터를 선택하여 view단으로 ajax통하여 통신을 할 경우 예를 들어 2명의 이용자가 동시에 같은 데이터를 통신할 시 중복된 데이터가 중첩이 되는 경우가 발생하는걸 확인하여 view단에서 ajax통하여 데이터를 get할때 Django filter를 사용하여 걸러주는 로직을 짜보았다.! model filde를 manytomanyfilde를 사용해서 unique 필드를 사용하지못하여 중복데이터를 잡아주지못해서 아쉽지만 view단에서 해결할 수 있는 방안을 마련하여 해결해서 다행이다! 

 

이제 정부표준프레임워크를 ..Java를 하로...가야겠다! 자바공화국에서는 자바를!!! 파이팅!

 

개발 스크립트[api]

if req.get('action') == 'postdata':
    result = {'result': 'false'}
    if req.get('state') == '작업지시':


        ## 중복 작업 확인부.
        idlist = req.getlist('idlist[]')
        tdatalist = Order_list.objects.filter(id__in=idlist)
        tdatalist = tdatalist.filter(scm_status='작업지시')
        if len(tdatalist) > 0:
            errormsg = '중복된 처리방식 입니다.'
            result = {'result': 'false', 'errormsg': errormsg}

        else:
            workform = Work_list(checker=req.get('user'))
            workform.save()
            for iloc in req.getlist('idlist[]'):
                tdata = Order_list.objects.get(id=iloc)
                tdata.scm_status = req.get('state')
                tdata.save()
                workform.order.add(iloc)
                result = {'result': 'true'}

개발스크립트[ajax]

if (alr) {
    $.ajax({
        url: "{% url 'B2C:tableapi' %}",
        dataType: 'json',
        type: 'post',
        data: {action: 'postdata', state: state, idlist: idlist, user: user},
        success: function (result) {
            if (result.result === 'true') {
                location.reload();
            } else {
                alert(result.errormsg)
                location.reload();
            }
        }
    })
반응형