¿Cómo puedo deshabilitar la protección csrf de Django solo en ciertos casos?

Estoy intentando escribir un sitio en Django en el que las URL de la API son las mismas que las URL orientadas al usuario. Pero tengo problemas con las páginas que usan solicitudes POST y protección CSRF. Por ejemplo, si tengo una página / foo / agregar, quiero poder enviarle solicitudes POST de dos maneras:

Como usuario final (autenticado mediante una cookie de sesión) enviando un formulario. Esto requiere protección CSRF.Como un 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 las deshabilitan para toda la vista ¿Hay alguna forma de habilitarlo / deshabilitarlo en un nivel más detallado? ¿O simplemente voy a tener que implementar desde cero la propia protección CSRF?

Respuestas a la pregunta(2)

Su respuesta a la pregunta