我有以下代码,在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")
但当我升级到Django 1.4时,我开始收到一条403禁止的消息,其中有一条“CSRF验证失败”消息。
为什么那个@csrf_豁免的装饰器不工作?
URL定义为:
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",
),
)
csrf_豁免必须装饰一个功能。在url中,您可以修饰那个函数docs can be found here。
只需在
urls.py
中使用csrf_exempt
。即:网址.py
根据django docs:
所以你需要做些什么:
相关问题 更多 >
编程相关推荐