@csrf_exempt parou de funcionar no Django 1.4
Eu tenho o seguinte código, que estava funcionando bem no Django 1.2.5:
<code>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") </code>
Mas quando eu atualizei para o Django 1.4, eu comecei a ter um 403 proibido, com uma mensagem "CSRF verification failed".
Por que o decorador @csrf_exempt não está funcionando?
A definição de URL é:
<code>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", ), ) </code>