Подтвердить что ты не робот

Как освободить CSRF Protection на direct_to_template

У меня есть поток в моем приложении django, в котором я перенаправляю пользователя на другую услугу (например, PayPal), которая после некоторой собственной обработки возвращает пользователя обратно на мой собственный сервер. Точка возврата на моем сервере - это простая страница успеха HTML, которую я обрабатываю с помощью direct_to_template.

По каким-то нечетным причинам другой сервер отправляет запрос POST, и, следовательно, пользователь видит пропущенный токен CSRF, поскольку другой сервер не отправляет обратно токен CSRF.

Как освободить представление direct_to_template из токенов CSRF?

4b9b3361

Ответ 1

Вы можете использовать декоратор csrf_exempt, чтобы отключить защиту CSRF для определенного вида.

Скажите, что ваш шаблон URL:

('^my_page/$', direct_to_template, {'template': 'my_page.html'})

Добавьте в свой urls.py следующий импорт:

from django.views.decorators.csrf import csrf_exempt

Затем измените шаблон url на:

('^my_page/$', csrf_exempt(direct_to_template), {'template': 'my_page.html'})

Ответ 2

Вы можете использовать @csrf_exempt decorator для токена csrf excempt, для этого вам нужно импортировать

from django.views.decorators.csrf import csrf_exempt

затем напишите @csrf_exempt перед просмотром

это будет работать правильно:)