Home > Back-end >  Pass Array using AJAX in Django
Pass Array using AJAX in Django

Time:04-21

I have an array called metrics and im trying to pass it to backend with AJAX but Im only getting the last values of the array 7,8,9 . I want to pick up the whole array .Any idea how? Any help is appreciated.

html

 var metrics = [
  [1,2,3],
  [4,5,6],
  [7,8,9], 
];

 $.ajax({
        type : 'GET' , 
        url : "...",
        data : {"metrics[]": metrics },
    })

views.py

def Sensor_Metrics(request):
    if request.is_ajax and request.method == "GET" : 
        metrics = request.GET.get("metrics[]")
        print(metrics)
    return JsonResponse({"error": ""}, status=400)

CodePudding user response:

In the views, you need to use request.GET.getlist in order to get the complete list from the request. You need to use -: metrics = request.GET.getlist("metrics[]"). You can refer the docs here.

CodePudding user response:

The solution is adding the brackets in views.py while calling the request.

in script

 var metrics = [
  [1,2,3],
  [4,5,6],
  [7,8,9], 
];

 $.ajax({
        type : 'GET' , 
        url : "...",
        data : {"metrics": metrics},
    })

in views.py

def Sensor_Metrics(request):
    if request.is_ajax and request.method == "GET" : 
        metrics = request.GET.get("metrics[]") #Important
        print(metrics)
    return JsonResponse({"error": ""}, status=400)

You are welcome

  • Related