Подтвердить что ты не робот

Как получить массив в Django, отправленный через Ajax

Когда я пытаюсь отправить массив в Django через Ajax (jQuery)

Код JavaScript:

new_data = ['a','b','c','d','e'];
$.get('/pythonPage/', {'data': new_data},function(data){});

и я пытаюсь прочитать массив:

Python:

request.GET.get("data[]")

Я получаю только последнее значение массива:

'e'

Что я делаю неправильно?

4b9b3361

Ответ 2

Довольно старый вопрос, но позвольте мне показать вам полный рабочий код для этого. (Хорошо для новичка :)

В вашем шаблоне

data = {
    'pk' : [1,3,5,10]
}

$.post("{% url 'yourUrlName' %}", data, 
    function(response){
        if (response.status == 'ok') {
            // It all good
            console.log(response)
        } else {
            // Do something with errors
        }
    })

urls.py

urlpatterns = [
    url(r'^yourUrlName/', views.yourUrlName, name='yourUrlName'), #Ajax
]

views.py

from django.views.decorators.http import require_POST
from django.http import JsonResponse


@require_POST
def yourUrlName(request):
    array = request.POST.getlist('pk[]')

    return JsonResponse({
            'status':'ok',
            'array': array,
        })

Ответ 3

Просто используйте request.GET.getlist('data[]')