Intentando analizar `request.body` de POST en Django

Por alguna razón, no puedo entender por qué Django no está manejando mi contenido de request.body correctamente.

Se está enviando en formato JSON , y al mirar la pestaña Network en Dev Tools se muestra esto como la carga útil de solicitud:

 {creator: "creatorname", content: "postcontent", date: "04/21/2015"} 

que es exactamente cómo quiero que se envíe a mi API.

En Django tengo una vista que acepta esta solicitud como un parámetro y solo para mis propósitos de prueba, debería imprimir request.body["content"] en la consola.

Por supuesto, no se está imprimiendo nada, pero cuando request.body la request.body .

 b'{"creator":"creatorname","content":"postcontent","date":"04/21/2015"}' 

así que sé que tengo un cuerpo siendo enviado.

He intentado usar json = json.loads(request.body) sin éxito tampoco. Imprimir json después de configurar esa variable tampoco devuelve nada.

En Python 3.0 a Python json.loads() , json.loads() solo aceptará una cadena Unicode, por lo que debe decodificar request.body (que es una cadena de bytes) antes de pasarla a json.loads() .

 body_unicode = request.body.decode('utf-8') body = json.loads(body_unicode) content = body['content'] 

En Python 3.6, json.loads() acepta bytes o bytearrays . Por lo tanto, no es necesario que decodifique request.body (suponiendo que esté codificado en UTF-8, UTF-16 o UTF-32).