@csrf_exempt przestał działać w Django 1.4
Mam następujący kod, który działał poprawnie w 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>
Ale kiedy zaktualizowałem do Django 1.4, zacząłem otrzymywać 403 zabronione, z komunikatem „Weryfikacja CSRF”.
Dlaczego dekorator @csrf_exempt nie działa?
Definicja adresu URL to:
<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>