【发布时间】:2015-09-01 11:24:36
【问题描述】:
我知道有关于 Django Rest Framework 的答案,但我找不到我的问题的解决方案。
我有一个具有身份验证和某些功能的应用程序。 我向它添加了一个新应用程序,它使用 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 令牌。您可以在整个视图上使用它。这不应该工作吗?
-
不,我仍然得到详细信息:“CSRF 失败:CSRF 令牌丢失或不正确。”信息。我从答案中得出结论,我应该删除默认身份验证。
-
我在使用令牌身份验证时遇到了非常相似的情况。对于同一条船上的其他人:stackoverflow.com/questions/34789301/…
标签: django django-rest-framework csrf django-csrf