sourcecode

POST jQuery 배열을 장고에 연결

copyscript 2023. 9. 26. 22:30
반응형

POST jQuery 배열을 장고에 연결

jQuery 배열의 간단한 숫자를 장고에 올리려고 하는데, 정말 안 되네요.저는 이것에 대해 약간의 도움이 필요합니다.다음 오류와 함께 Http 500이 표시됩니다.

Internal Server Error: /edit_lists/
Traceback (most recent call last):
  File "/home/jabez/.virtualenvs/hackernews/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in get_response
    response = middleware_method(request, response)
  File "/home/jabez/.virtualenvs/hackernews/local/lib/python2.7/site-packages/django/middleware/common.py", line 106, in process_response
    if response.status_code == 404:
AttributeError: 'list' object has no attribute 'status_code'

제 암호는 이렇습니다.

자바스크립트

    $('.btn-group').find('#mark_as_done').on('click', function() {
    var tasks = grab_selected();

    $.ajax({
        type: 'POST',
        url: '/edit_lists/',
        data: {'tasks': tasks},
    });
});

function grab_selected() {
    var tasks = [];
    $('input:checked').each(function() {
        tasks.push(this.id);
    });
    return tasks;
}

views.py

def edit_lists(request):
tasks = request.POST.getlist('tasks')
return tasks

urls.py

url(r'^edit_lists/$', 'todo.views.edit_lists', name='edit_lists')

사용해보실 수 있습니다.tasks[]대신에tasksajax를 통해 전송할 때 parameter로 지정합니다.예:

$('.btn-group').find('#mark_as_done').on('click', function() {
    var tasks = grab_selected();

    $.ajax({
        type: 'POST',
        url: '/edit_lists/',
        data: {'tasks[]': tasks},
    });
});

또 한 가지는 당신이 그냥 돌아오는 것입니다.return tasks인에edit_lists()보기, 당신은 반환합니다.HttpResponse인스턴스(instance) 또는 단축키 사용(예:render:

from django.http import HttpResponse

def edit_lists(request):
    tasks = request.POST.getlist('tasks[]')
    return HttpResponse('Success')

도움이 되었으면 좋겠군요

사용해보실 수 있습니다.JSON.stringify()Ajax를 통해 전송할 때 매개 변수로 작업 대신 메서드를 사용합니다.

여기 내 콘솔에 대한 배열 데이터가 있습니다.

enter image description here

그런 다음 배열 데이터를 ajax로 보냅니다.

$.ajax({
     type: "POST",
     url: "/user/Survey-Design/",
     headers: {
         'Authorization': "Token " + localStorage.access_token
     },
     data: {
         'arr': JSON.stringify(arr)
     },
     success: function(result) {
         alert('Data Has been saved')
     }
 });

시야에.py:

 def create(self,request):
     array_data = request.POST['arr']
     data = json.loads(array_data)
     print(data)
     return HttpResponse('Success')

마지막으로 단말기에 인쇄(데이터) 표시

enter image description here

언급URL : https://stackoverflow.com/questions/18045867/post-jquery-array-to-django

반응형