@csrf_exempt a cessé de travailler dans Django 1.4
J'ai le code suivant, qui fonctionnait bien dans 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")
Mais quand j'ai mis à Django 1.4, j'ai commencé à obtenir un 403 forbidden, avec un "CSRF échec de la vérification de" message.
Pourquoi est-ce que @csrf_exempt décorateur ne fonctionne pas?
Définition d'URL est:
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",
),
)
source d'informationauteur lfagundes
Vous devez vous connecter pour publier un commentaire.
Selon la django docs:
De sorte que vous auriez besoin de faire quelque chose comme:
Suffit d'utiliser
csrf_exempt
dans leurls.py
. ie::urls.py
csrf_exempt a pour décorer une fonction. Dans votre url, vous pouvez décorer une fonction, docs peuvent être trouvés ici.