반응형
Ajax를 통해 Django에서 어레이를 게시하는 방법
Ajax(jQuery)를 통해 Django로 어레이를 전송하려고 할 때
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's 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[]')
새로운 버전의 django를 사용하면 @YellowCap의 제안조차도request.POST.getlist('data[]')
나한테는 안 통했어
하지만dict(request.POST)["data"]
동작합니다.문맥 : https://code.djangoproject.com/ticket/1130
언급URL : https://stackoverflow.com/questions/12101658/how-to-get-an-array-in-django-posted-via-ajax
반응형
'programing' 카테고리의 다른 글
Jackson 직렬화 해제, json의 루트 요소 무시 (0) | 2023.03.19 |
---|---|
반응 - 최소 예외가 발생했습니다. (0) | 2023.03.19 |
NewtonSoft를 사용하여 JSON 개체의 속성을 업데이트하는 방법 (0) | 2023.03.14 |
모든 약속이 해결될 때까지 기다립니다. (0) | 2023.03.14 |
Angular HttpPromise: "success"/"error" 메서드와 "then" 인수 간의 차이 (0) | 2023.03.14 |