Как получить массив Ajax в Django - PullRequest
0 голосов
/ 06 января 2019

Есть много вопросов о передаче массива через Ajax, но у меня никто не работал.

Я публикую только измененные данные формы в массиве из Ajax в представление Django, и я могу получить данные, но я не могу использовать какой-либо цикл для получения первого индекса массива, потому что я вижу формат данных, отличающийся в представлении Django .

views.py

@csrf_exempt
def formdata(request):
    template_name = 'base_index.html'
    if request.method == 'GET':
        form = userForm()
        posts = User.objects.all()
        args = {'form': form, 'posts': posts }
        return render(request, template_name, args)
    if request.is_ajax():
        data = request.POST
        print(data.dict()) # result of array is in last part.
        for i in data:
            print(i[0]) # this printing first letter of array name.But i was expecting value of first index.
    else:
        message = " "
   return HttpResponse(message)

ЯШ:

var getformdata = []
//calling this function when texbox data changed.
function change_send(lblname,columnname,id,oldvalue,newvalue){
     //some code
       //...
      getformdata.push({id:id,
                        fieldname:columnname,
                        fieldvalue:newvalue
                      })
      console.log(getformdata)
}
$(document).ready(function() {
$("#userdata").submit(function(event){
        $.ajax({
             type:"POST",
             url:"/main/",
             data: {
                    'getformdata':getformdata
                    },
             success: function(data){
                 //return success msg
             }
        });
        return false;
   });

});
</script>

Я вижу результат массива javascript в консоли:

0: {id: 2, fieldname: "user_name", fieldvalue: "qa"}
1: {id: 3, fieldname: "user_name", fieldvalue: "qdf23"}

Но после передачи данных в Django я вижу данные, как показано ниже:

{'getformdata[0][id]': '2', 'getformdata[0][fieldname]': 'user_name',
 'getformdata[0][fieldvalue]': 'qa', 
 'getformdata[1][id]': '3', 'getformdata[1][fieldname]': 'user_name',
 'getformdata[1][fieldvalue]': 'qdf23'
}

Но этот формат не позволяет мне получить значение первого индекса (2 и 3 идентификатора).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...