Ответ 1
Вы ищете список QueryDict
getlist
request.GET.getlist('data')
request.GET.getlist('data[]')
request.GET.getlist('etc')
https://docs.djangoproject.com/en/2.0/ref/request-response/#django.http.QueryDict.getlist
Когда я пытаюсь отправить массив в Django через Ajax (jQuery)
Код JavaScript:
new_data = ['a','b','c','d','e'];
$.get('/pythonPage/', {'data': new_data},function(data){});
и я пытаюсь прочитать массив:
Python:
request.GET.get("data[]")
Я получаю только последнее значение массива:
'e'
Что я делаю неправильно?
Вы ищете список QueryDict
getlist
request.GET.getlist('data')
request.GET.getlist('data[]')
request.GET.getlist('etc')
https://docs.djangoproject.com/en/2.0/ref/request-response/#django.http.QueryDict.getlist
Довольно старый вопрос, но позвольте мне показать вам полный рабочий код для этого. (Хорошо для новичка :)
В вашем шаблоне
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,
})
Просто используйте request.GET.getlist('data[]')