无法用python cod获得对place nice的ajax响应

2024-09-25 10:30:37 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:出于某种原因,我似乎无法理解,如果我的wo\u数据查询为空,为什么我的ajax调用不会返回成功值。我想发生的是,如果我把一个值放入id\u work\u order,而在我的db中找不到它,就会弹出一个警告,说找不到workorder-否则,如果找到它,则返回成功。任何帮助都将不胜感激

如果在我的浏览器控制台中找不到工单,会发生什么 typeerror:数据[0]未定义

如果找到了我会得到这个 成功

如果在我的回复中找到了workorder,那么下面就是我的数据 0:对象

purch_order: "1" 
success: "success" 
part_rev: "A" 
part_number: "12345" 
work_o: "W0000001" 

客户名称:“测试”

如果找不到,我就什么也得不到

这是我的观点

    def get_work(request): 
        if request.is_ajax(): 
            q = request.GET.get('workorder_id', '') 
            wo_data = Dim_work_order.objects.filter(base_id__icontains = q )[:1] 
            results = [] 
            for x in wo_data: 
                x_json = {} 
                if wo_data.exists(): 
                  x_json['success'] = 'success' 
                  x_json['work_o'] = x.base_id 
                  x_json['customer_name'] = x.name 
                  x_json['part_number'] = x.part_id 
                  x_json['part_rev'] = x.part_rev 
                  x_json['purch_order'] = x.customer_po_ref 
                  results.append(x_json) 
                else:   
                  x_json['success'] = 'workorder_not_found' 
                  results.append(x_json) 

            data = json.dumps(results) 
            mimetype = 'application/json' 
            return HttpResponse(data, mimetype) 

        else: 
            data = 'fail' 
            return render(request, 'app/sheet_form_create') 

这是我的工单

        $(document).ready(function () { 

            //$('#id_work_order').click(function () { 
            //    getwork(); 
            //}); 

            $('#work_search').click(function () { 
                pop_other_fields(); 
            }); 



            //function getwork(){ 
            //    $('#id_work_order').autocomplete({ 
            //        source: "/sheet/sheet_form_create.html/get_work", 
            //        minLenght: 2, 
            //    });     
            //} 

            function pop_other_fields() { 
                var url = "/sheet/sheet_form_create.html/get_work?workorder_id=" + $('#id_work_order').val(); 
                var work_order = document.getElementById('id_work_order').value; 
                $.ajax({ 
                    type: 'GET', 
                    url: url, 
                    dataType: 'json', 
                    data: '', 
                    success: function (data) { 

                        if (data[0].success = "success") { 
                            console.log(data[0].success); 
                            $('#id_customer_name').val(data[0].customer_name); 
                            $('#id_part_number').val(data[0].part_number); 
                            $('#id_part_revision').val(data[0].part_rev); 
                            $('#id_purchase_order').val(data[0].purch_order); 
                        } 
                        if (data.success = "workorder_not_found") { 
                            alert("workorder not found :(") 
                        } 
                    } 

                }); 

            } 
        }); 

Tags: idjsonnumberdatagetrevorderfunction
1条回答
网友
1楼 · 发布于 2024-09-25 10:30:37

这里的代码永远不会到达:

            else:   
              x_json['success'] = 'workorder_not_found' 
              results.append(x_json) 

因为如果if wo_data.exists():不是真的,那么for x in wo_data:从一开始就不会有任何迭代

尝试:

def get_work(request): 
    if request.is_ajax(): 
        q = request.GET.get('workorder_id', '') 
        wo_data = Dim_work_order.objects.filter(base_id__icontains = q )[:1] 
        results = [] 
        if wo_data.exists(): 
            for x in wo_data: 
                x_json = {} 
                x_json['success'] = 'success' 
                x_json['work_o'] = x.base_id 
                x_json['customer_name'] = x.name 
                x_json['part_number'] = x.part_id 
                x_json['part_rev'] = x.part_rev 
                x_json['purch_order'] = x.customer_po_ref 
                results.append(x_json) 
        else:
            results.append({'success': 'workorder_not_found'}) 

        data = json.dumps(results) 
        mimetype = 'application/json' 
        return HttpResponse(data, mimetype) 

相关问题 更多 >