haduki
haduki

Reputation: 938

Pass Array using AJAX in Django

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)

Upvotes: 0

Views: 112

Answers (2)

enes islam
enes islam

Reputation: 1120

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)

Upvotes: 1

Swapnil Chopra
Swapnil Chopra

Reputation: 676

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.

Upvotes: 1

Related Questions