Я знаю, что есть ответы на Django Rest Framework, но я не смог найти решение моей проблемы.Django Rest Framework remove csrf
У меня есть приложение, имеющее аутентификацию и некоторые функции. Я добавил к нему новое приложение, в котором используется Django Rest Framework. Я хочу использовать библиотеку только в этом приложении. Кроме того, я хочу, чтобы сделать запрос POST, и я всегда получаю такой ответ:
{
"detail": "CSRF Failed: CSRF token missing or incorrect."
}
У меня есть следующий код:
# urls.py
from django.conf.urls import patterns, url
urlpatterns = patterns(
'api.views',
url(r'^object/$', views.Object.as_view()),
)
# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from django.views.decorators.csrf import csrf_exempt
class Object(APIView):
@csrf_exempt
def post(self, request, format=None):
return Response({'received data': request.data})
Я хочу добавить API, не влияя на текущее приложение. Итак, мои вопросы: как отключить CSRF только для этого приложения?
вы уже используете @csrf_exempt маркер. Вы можете использовать это на весь вид. Разве это не работает? – mukesh
Нет, у меня все еще есть детали: «CSRF Failed: токен CSRF отсутствует или неверен». сообщение. В заключение я пришел к выводу, что я должен удалить аутентификацию по умолчанию. –
Я столкнулся с ОЧЕНЬ подобной ситуацией, используя аутентификацию Token. Для кого-то еще в той же лодке: http://stackoverflow.com/questions/34789301/django-rest-framework-w-tokenauthentication-issue-with-csrf-cors –