Я пытаюсь написать сайт в Django, где URL-адреса API совпадают с URL-адресами пользователей. Но у меня проблемы со страницами, использующими запросы POST и CSRF. Например, если у меня есть страница /foo/add, я хочу, чтобы отправлять ей запросы POST двумя способами:
- Как конечный пользователь (аутентифицированный с использованием файла cookie сеанса), отправляющий форму. Для этого требуется защита CSRF.
- Как клиент API (аутентифицируется с использованием заголовка HTTP-запроса). Это не произойдет, если включена защита CSRF.
Я нашел различные способы отключения CSRF, такие как @csrf_exempt, но все они отключили его для всего представления. Есть ли способ включить/отключить его на более мелкомасштабном уровне? Или мне просто нужно реализовать собственную CSRF-защиту с нуля?