Estoy intentando escribir un sitio en Django en el que las URL de API son las mismas que las URL de usuario. Pero tengo problemas con páginas que usan solicitudes POST y protección CSRF. Por ejemplo, si tengo una página/foo/agregar Quiero ser capaz de enviar solicitudes POST a ella de dos maneras:¿Cómo puedo desactivar la protección csrf de Django solo en ciertos casos?
- Como usuario final (autenticado utilizando una cookie de sesión) enviar un formulario. Esto requiere protección CSRF.
- Como cliente API (autenticado usando un encabezado de solicitud HTTP). Esto fallará si la protección CSRF está habilitada.
He encontrado varias formas de deshabilitar CSRF, como @csrf_exempt, pero todas ellas lo deshabilitan para toda la vista. ¿Hay alguna forma de habilitarlo/deshabilitarlo a un nivel más detallado? ¿O voy a tener que implementar por propia protección CSRF desde cero?
¿Marcó [csrf protection docs] (https://docs.djangoproject.com/en/dev/ref/contrib/csrf/)? – machaku
Había leído partes de él, pero claramente no leí todos los Escenarios. ¡Gracias! – lucas