相关疑难解决方法(0)

@csrf_exempt停止在Django 1.4中工作

我有以下代码,在Django 1.2.5中工作正常:

from django.views.decorators.csrf import csrf_exempt

class ApiView(object):
    def __call__(self, request, *args, **kwargs):
        method = request.method.upper()
        return getattr(self, method)(request, *args, **kwargs)

@csrf_exempt
class MyView(ApiView):

    def POST(self):
       # (...)
       return HttpResponse(json.dumps(True), mimetype="text/javascript")
Run Code Online (Sandbox Code Playgroud)

但是当我升级到Django 1.4时,我开始禁止403,"CSRF验证失败"消息.

为什么@csrf_exempt装饰工作不起作用?

网址定义是:

from django.conf.urls.defaults import *
from django.views.decorators.csrf import csrf_exempt

import views

urlpatterns = patterns('',
   url(r'^myview/(?P<parameter_name>[A-Za-z0-9-_]+)/$',
       views.MyView(),
       name="myproject-myapp-myview",
       ),
)
Run Code Online (Sandbox Code Playgroud)

python django csrf django-csrf

16
推荐指数
2
解决办法
2万
查看次数

标签 统计

csrf ×1

django ×1

django-csrf ×1

python ×1