Получить переменную сообщения, отправленную через Ajax в Django - PullRequest
0 голосов
/ 15 января 2019

Я обрабатываю таблицу записей банковских / выписок, которые были экспортированы из другой системы через файл CSV. Они импортируются в представление и проверяются на наличие дубликатов, а затем представляются пользователю в таблице HTML для окончательного просмотра.

После проверки они отправляются через AJAX на сервер, чтобы их можно было добавить в модель Django. Все работает нормально, включая CSRF, но я не могу получить доступ к переменной POSTed, хотя я вижу это!

К сожалению, создание скрытой формы нецелесообразно, так как для обработки требуется более 80 строк.

Мой Javascript выглядит так:

$.ajax({
    type: 'POST',
    url: '......./ajax/handleImports/',
    data: entriesObj,
    success: function (data) {
        if (data.response && data.response) {
            console.log("Update was successful");
            console.log(data.entries)
        } else {  ... } 
    },
    error: function() { ... }

, где entryObj равно

var entriesObj = JSON.stringify({ "newentries": newEntries });
console.log(entriesObj)

и при выгрузке в console.log выглядит так:

{"newentries":[{"Include":"","Upload ID":"0","Date":"2019-01-09", ... }

Теперь в view.py , когда я возвращаю весь объект request.POST как data.entries, используя

context['entries'] = request.POST
return JsonResponse(context)

Я получаю

{"{"newentries":[{"Include":"","Upload ID":"0","Date":"2019-01-09", ... }

но если я попытаюсь получить новые записи с помощью:

entries = request.POST.get('newentries', None)
context['entries'] = entries
return JsonResponse(context)

console.log (data.entries) выведет ноль?

Как я могу получить доступ к POSTed записямObj?

1 Ответ

0 голосов
/ 15 января 2019

Данные в формате JSON, вам нужно получить значение из request.body и проанализировать его.

data = json.loads(request.body)
entries = data.get('newentries')
...