10 Stimmen

"CSRF-Verifizierung fehlgeschlagen" beim Versuch, eine Datei hochzuladen oder einen Ordner mit filebrowser für Django zu erstellen

Ich habe filebrowser für Django (nicht filebrowser3) installiert und wenn ich versuche, eine Datei hochzuladen, erhalte ich den folgenden Fehler:

403 Verboten

CSRF-Überprüfung fehlgeschlagen. Anfrage abgebrochen.

Weitere Informationen sind erhältlich bei DEBUG=True.

Der gleiche Fehler tritt auf, wenn ich versuche, einen neuen Ordner zu erstellen, was zeigt, dass das Problem darin besteht, dass filebrowser keine Dateien/Verzeichnisse in meinem Uploads-Verzeichnis erstellen kann. Ich verwende die Standardeinstellungen und habe manuell erstellt die /media/uploads Verzeichnis mit den folgenden Berechtigungen 755 .

Wenn ich eine Datei in das Verzeichnis hochlade, gibt die Dateibrowser-Administrationsseite an:

1 Artikel Ordner: 0 Bild: 1

Ich kann das von mir hochgeladene Bild nicht anzeigen.

Ich habe die Module PIL und sorl.thumbnail installiert.

6voto

Daniel Roseman Punkte 565786

Sie verwenden wahrscheinlich die Entwicklungsversion von Django, die viele zusätzliche CRSF-Sicherheitsfunktionen enthält. Sie ist jedoch noch nicht freigegeben, so dass externe Produkte wahrscheinlich nicht kompatibel sind. Sie sollten stattdessen die Version 1.1 von Django verwenden.

0 Stimmen

Richtig! Ich kämpfe mit der Herabstufung auf 1.1. Gibt es irgendeine Möglichkeit, dieses Problem zu lösen, außer auf die Aktualisierung der App zu warten? Danke!

4voto

fitzgeraldsteele Punkte 4537

Die Djangodocs haben weitere Informationen über das neue Django CSRF-Anforderungen :

4voto

Gleb Svechnikov Punkte 245

Fügen Sie diese 2 Zeilen in Ihre settings.py ein:

django.middleware.csrf.CsrfViewMiddleware', django.middleware.csrf.CsrfResponseMiddleware',

0 Stimmen

In der Regel wird der Fehler darauf hinweisen, dass Sie den ersten einschließen müssen, aber nicht, dass Sie den zweiten einschließen müssen. +1 für die Auflistung der beiden hier als dies mein Problem gelöst :)

2voto

Siehe hier: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/ wie fitzgeralsteele sagte. Umarmungen.

Beispiel: from django.views.decorators.csrf import csrf_exempt

@csrf_exempt def my_view(request): return HttpResponse('Hallo Welt')

Deaktivieren Sie die CSRF-Middleware.

0voto

elin3t Punkte 1851

Es funktioniert das Hinzufügen

{% csrf_token %} 

Meine Formulare sehen wie folgt aus:

<form method="post" action="">
{% csrf_token %}
{{ form.non_field_errors }}
{{formulario}}
<input type="submit" value="Guardar">
</form>

in die Tags Ihrer Vorlagendatei einfügen und vergewissern Sie sich, dass 'django.middleware.csrf.CsrfViewMiddleware' in Ihrer Einstellungsdatei enthalten ist, dies ist standardmäßig der Fall

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