Передача словаря в Ajax - PullRequest
0 голосов
/ 03 мая 2020

У меня Ajax звонок на событие on('click',). Данные, переданные с моего HTML, равны value= '{{y.id }} {{ y.id }}'. Ajax передает его моему views.py на python стороне сервера как str.

Есть ли способ сделать его прямым списком или словарем? Или я должен извлечь его и преобразовать в мой views.py?

Мой html:

{% if user.is_authenticated %}            
                <form class="add_btn" method='post'>{% csrf_token %}
                <button class='added btn' value='{{x.id }}{{ y.id }}' ><i class=' fas fa-save'></i></button>              
{% endif %}

Мой Ajax:

$(".added").on('click', function(event) {
    event.preventDefault();  
    var prefered = $(this).val();      
    var url = '/finder/add/';   
    $.ajax({        
        url: url,        
        type: "POST",
        data:{
            'prefered': prefered,            
            'csrfmiddlewaretoken': $('input[name=csrfmiddlewaretoken]').val()
        },
        datatype:'json',
        success: function(data) {
          if (data['success']) 
            console.log(prefered);        
        }
    }); 
});

Мои views.py

def add(request):
    data = {'success': False} 
    if request.method=='POST':
        prefered = request.POST.get('prefered')
        print (prefered)
        print (type(prefered))
        user = request.user
        print (user)         
        data['success'] = True
    return JsonResponse(data)

1 Ответ

1 голос
/ 03 мая 2020

Как вы сказали, на вашей серверной стороне, выполняющей python, будут получены данные AJAX в строковом формате JSON, и весь синтаксический анализ оставлен на уровне приложения.

Какой означает, что вам придется выполнить анализ внутри вашего views.py в вашем случае . Но с помощью таких пакетов, как json или simplejson, это должно быть довольно просто.

Обратите внимание, что в некоторых ситуациях синтаксический анализ может выполняться внутри уровня промежуточного программного обеспечения, что облегчает работу приложения ( views.py, например), но установка промежуточного слоя - это издержки, которых вы обычно избегаете в небольших проектах.

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