2017-01-12 4 views
0

Django: 1.9.7/Python 3.5.1Джанго: csrf_exempt не работает

views.py

from django.views.decorators.csrf import csrf_exempt 
from django.http import JsonResponse 

class OrderPayCheckView(View): 

    @csrf_exempt 
    def post(self, request, *args, **kwargs): 
     return JsonResponse(
      data={ 
       "valid": False, 
      } 
     ) 

Когда я посылаю POST запрос на этот адрес через POSTMAN, это показывает, 403 Forbidden - CSRF authentication Fail kinda thing (я действительно хочу показать все ошибки, но язык корейский)

Я тестировал его на своем тестовом сервере, который имеет свой собственный URL.

Почему это происходит?

ответ

1

Положите декоратор перед просмотром, тогда он будет работать правильно.

from django.views.decorators.csrf import csrf_exempt 
from django.http import JsonResponse 

@csrf_exempt 
class OrderPayCheckView(View): 
    def post(self, request, *args, **kwargs): 
     return JsonResponse(
      data={ 
       "valid": False, 
      } 
     ) 
+1

Спасибо. что, если я не использую View в django, а только url? – Dejell

+1

@Dejell, например, '('^ my_page/$', csrf_exempt (direct_to_template), {'template': 'my_page.html'})' – Jinje

Смежные вопросы