Я делаю RESTful API с помощью Tastypie, и когда я пытаюсь POST/PUT/DELETE
запрос он говорит:«detail»: «CSRF Failed: токен CSRF отсутствует или неверен».
«деталь»: «CSRF Ошибка: CSRF маркер отсутствует или неправильно.».
Он отлично работает с GET
. Я читал различные темы на SO, говоря:
- удалить куки
- или использовать
@csrf_exempt
- или использовать
@method_decorator(csrf_exempt)
, но ни один из него работал.
Как пропустить эту ошибку?
views.py
class SnippetList(mixins.ListModelMixin,
mixins.CreateModelMixin,
generics.GenericAPIView):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
request._dont_enforce_csrf_checks = True
print request.DATA
return self.create(request, *args, **kwargs)
serializer.py
from django.forms import widgets
from rest_framework import serializers
from snippets.models import Snippet, LANGUAGE_CHOICES, STYLE_CHOICES
class SnippetSerializer(serializers.ModelSerializer):
class Meta:
model = Snippet
fields = ('id', 'title', 'code', 'linenos', 'language', 'style')
urls.py
from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
from snippets import views
urlpatterns = patterns('',
url(r'^snippets/$', views.SnippetList.as_view()),
url(r'^snippets/(?P<pk>[0-9]+)/$', views.SnippetDetail.as_view()),
)
urlpatterns = format_suffix_patterns(urlpatterns)
Вы пробовали: [csrfexemptmixin] (Http: // Джанго -braces.readthedocs.org/en/latest/form.html#csrfexemptmixin)? – mariodev
Что такое модуль 'braces'? – PythonEnthusiast
Я установил модуль 'braces' из https://github.com/brack3t/django-braces и повторно выполнил запрос POST, и он по-прежнему дает мне ту же ошибку. – PythonEnthusiast