Получение информации из Jquery в представлениях Django

В скрипте jquery я получаю информацию из таблицы в переменную data в формате json:

<script>
         var $table = $('#table')
         var $button = $('#button')

         $(function() {
            $button.click(function () {
                data = JSON.stringify($table.bootstrapTable('getData'))
                $.ajax({
                    url: "{%url 'addCampaign'%}",
                    type: "POST",
                    data: {
                        'mails_inf': data,
                        'csrfmiddlewaretoken': '{{ csrf_token }}',
                    }
                })
            })
         })
    </script>

А в функции с представлениями я пытаюсь получить этот список для дальнейшей обработки следующим образом:

def add_campaign(request):
    error = ''
    if request.method == 'POST':
        data = request.POST.get('mails_inf')
        print(data)

Но переменная data оказывается None, при оповещении этой переменной в самом скрипте, вся информация есть. Моя вкладка, на которой все это происходит, работает с таким url:

path('addCampaign', views.add_campaign, name='addCampaign')

Буду благодарен, если вы подскажете мне, где я ошибаюсь, или предложите другое решение проблемы

Проблема в том, что когда вы отправляете данные через Jquery, данные не будут находиться в request.POST, но они будут находиться в необработанном request.body при условии, что ваша форма правильная (name передается на вход, содержащий ваши данные). Как указано в docs:

HttpRequest.body

.

Необработанное тело HTTP-запроса в виде байтовой строки. Это полезно для обработки данных в формах, отличных от обычных HTML: бинарные изображения, полезная нагрузка XML и т.д. Для обработки обычных данных формы используйте HttpRequest.POST.

import json

def add_campaign(request):
    error = ''
    if request.method == 'POST':
        data = json.loads(request.body)['mails_inf']
        # data = request.POST.get('mails_inf')
        print(data)

Если это не поможет, возможно, вы можете добавить форму в свой шаблон, чтобы посмотреть, есть ли проблема в ней.

Вернуться на верх