JSONDecodeError - request.body возвращает пустую строку Django

Я пытаюсь получить доступ к некоторым данным JSON из моей страницы views.py, но кажется, что я отправляю пустые строки?

Мой JS код

document.querySelector('#compose-form').onsubmit = () => {
    
    const recipients = document.querySelector('#compose-recipients').value
    const subject = document.querySelector('#compose-subject').value
    const body = document.querySelector('#compose-body').value

    fetch('/emails', {
      method: 'POST',
      body: JSON.stringify({
        recipients: String(recipients),
        subject: String(subject),
        body: String(body)
      })
    })

    .then(response => response.json())
    .then(result => {

      load_mailbox('sent');
      console.log(result);
    });

    return false;
  };

Что я пытался воспроизвести:

fetch('/emails', {
  method: 'POST',
  body: JSON.stringify({
      recipients: 'baz@example.com',
      subject: 'Meeting time',
      body: 'How about we meet tomorrow at 3pm?'
  })
})
.then(response => response.json())
.then(result => {
    // Print result
    console.log(result);
});

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

**Шаблон **

<form id="compose-form" action="{% url 'compose' %}" method="POST">
            <div class="form-group">
                From: <input disabled class="form-control" value="{{ request.user.email }}">
            </div>
            <div class="form-group">
                To: <input id="compose-recipients" class="form-control">
            </div>
            <div class="form-group">
                <input class="form-control" id="compose-subject" placeholder="Subject">
            </div>
            <textarea class="form-control" id="compose-body" placeholder="Body"></textarea>
            <input type="submit" class="btn btn-primary" id="compose-submit"/>
        </form>

URL

path("emails/", views.compose, name="compose"),

Views.py

    data_unicode = request.body.decode('utf-8') 
    data = json.loads(data_unicode)

Когда я отлаживаю, вот что я получаю:

(return) тело: b' '

data_unicode: ' '

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