Исключение RawPostException: вы не можете получить доступ к телу после чтения из потока данных запроса

#json #django #ajax #html-table #raw-post

#json #django #ajax #html-таблица #raw-post

Вопрос:

Я пытаюсь получить данные из ajax в django post view, я создаю корзину с товарами, теперь мне нужно отправить корзину в серверную часть

Мой js-код:

 $.ajax({
  url: url,
  type: "POST",
  data: JSON.stringify({'order_data':order}),
  contentType: 'application/json; charset=UTF-8',
  success: function (data) {
    if (data['success']) {
        alert(data['success']);
    }
  },
  error: function (request, error, status) {
    if (request) {

    }
  }
});
 

Мой код представления, который я использую в представлении Django:

 if request.method == "POST":
  data = json.loads(request.body)
  cart = data['order_data']
 

Затем я получаю эту ошибку

  RawPostException: You cannot access body after reading from request's data stream
 

ваши предложения будут предпочтительнее

Ответ №1:

Вы можете получить значения из POST через:

 order_data = request.POST.get('order_data')
 

Комментарии:

1. order_data — это не какое-либо поле ввода, а словарь, который я создаю из jquery, а затем отправляю его обратно, this POST.get не дает мне ничего

Ответ №2:

Я нашел решение для этого, где мне нужно внести небольшие изменения в представление Django

  order_data = json.loads(request.POST.get('order_data'))
 

и моя работа выполнена