tutorial queryset framework foreign coreapi python django django-rest-framework

python - queryset - django-rest-framework acepta datos JSON?



django rest framework serializer queryset (4)

Debe definir el tipo de contenido estableciendo los encabezados apropiados. En el caso de Postman, debe establecer los siguientes valores en el campo url:

Encabezado: "Tipo de contenido"

Valor: aplicación / json

He creado API RESTFul usando django-rest-framework. El punto final del usuario es

/api/v1/users

Quiero crear un nuevo usuario Envío datos de usuario en formato JSOn.

{ "username": "Test1", "email": "[email protected]", "first_name": "Test1", "last_name": "Test2", "password":"12121212" }

Estoy usando la extensión de Chrome Postman para probar la API. Pero los datos del usuario no se han guardado. La respuesta es:

{ "detail": "Unsupported media type /"text/plain;charset=UTF-8/" in request." }

Captura de pantalla adjunta


Debe hacer dos pasos para resolver este problema:

  1. Agregue el encabezado Content-Type con el valor application/json
  2. Agregue el encabezado de Authorization con el valor Token {YOUR_CUSTOM_TOKEN} para pasar CSRFToken

Nota : si desea autenticarse con la sesión, no necesita hacer el segundo paso, pero si desea utilizar esta API para dispositivos móviles, debe pasar el encabezado de Autorización al servidor.

Espero que ayude


Se ha perdido agregar el encabezado Content-Type en la sección de encabezados. Simplemente configure el encabezado Content-Type en application/json y debería funcionar.

Ver la imagen de abajo:

Además, es posible que también deba incluir un token CSRF en el encabezado en caso de que obtenga un error {"detail": "CSRF Failed: CSRF token missing or incorrect."} realizar una solicitud POST con Postman. En ese caso, agregue un encabezado X-CSRFToken también con valor como el valor del token CSRF.


Estoy publicando esta respuesta en caso de que alguien tenga un problema como el mío.

Estoy trabajando en una aplicación de Front-End usando Angular 2 con una API hecha con Django Rest Framework y solía enviar solicitudes con los siguientes encabezados:

''Content-Type'': ''application/json''

Y funcionó bien hasta que lo probé en Fire Fox y no pude cargar los datos necesarios y lo resolví añadiendo los siguientes encabezados

''Content-Type'': ''application/json'', ''Accept'': ''application/json''

Aquí hay una explicación, Content-Type le dice al servidor cuál es el tipo de contenido de datos mientras que Accept le dice qué tipo de contenido aceptará el cliente.

Aquí hay una buena respuesta clara sobre este tema:

https://webmasters.stackexchange.com/questions/31212/difference-between-the-accept-and-content-type-http-headers