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: ' '