2 Stimmen

Django: render vs. render_to_response und seine Beziehung zu csrf_token

Ich habe in der Regel render_to_response für meine Ansichtsfunktionen in Django verwendet.

In letzter Zeit habe ich jedoch versucht, häufiger die render-Methode (https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render) zu verwenden, die laut Dokumentation automatisch 'context_instance' einbezieht, wenn keines bereitgestellt wird.

Wie funktioniert dieses optionale context_instance-Argument im Zusammenhang mit csrf_token? Muss ich explizit eine Vorlagevariable wie "csrf(request)" senden, indem ich etwas wie

template_vars.update(csrf(request))

verwende?

Ich frage deshalb nach, weil ich eine unerklärliche

"Forbidden (403) CSRF-Überprüfung fehlgeschlagen. Anfrage abgebrochen". 

Erhalte, obwohl ich das CSRF-Middleware in meinen Einstellungen und in meiner Vorlage, Formular, einem {% csrf_token %} Templatetag-Aufruf aktiviert habe.

1voto

Burhan Khalid Punkte 161333

Hast du vergessen, django.core.context_processors.csrf zu TEMPLATE_CONTEXT_PROCESSORS hinzuzufügen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X