2009-11-11 8 views
10

Mam zainstalowany Filebrowser dla Django (nie filebrowser3) i gdy próbuję przesłać plik I odbieranie następujący błąd:„weryfikacja CSRF nie powiodła się” przy próbie przesłania pliku lub utworzyć folder z filebrowser dla Django

403 Forbidden

CSRF verification failed. Request aborted.

More information is available with DEBUG=True.

Ten sam błąd występuje, gdy próbuję utworzyć nowy folder, który pokazuje, że problem polega na tym, że przeglądarka plików nie może tworzyć plików/katalogów w moim katalogu uploadów. Używam ustawień domyślnych i ręcznie utworzyłem katalog /media/uploads z jego uprawnieniami ustawionymi jako 755.

Gdybym przesłać plik do katalogu, a następnie złożyć przeglądarkach strona administracja stwierdza:

1 Item Folder: 0 Image: 1

Nie można wyświetlić obraz, który mam wgrany.

Mam zainstalowane moduły PIL i sorl.thumbnail.

Odpowiedz

6

Prawdopodobnie używasz rozwojowej wersji Django, która zawiera sporo dodatkowych zabezpieczeń CRSF. Jednak nie został jeszcze wydany, więc produkty zewnętrzne prawdopodobnie nie są kompatybilne. Zamiast tego powinieneś użyć wersji 1.1 Django.

+0

Prawidłowo! Zmagam się z obniżeniem do 1.1. Czy istnieje sposób na rozwiązanie tego problemu, oprócz czekania na aktualizację aplikacji? Dzięki. –

1

Zobacz tutaj: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/ jak fitzgeralsteele powiedział. Uściski.

przykład: z django.views.decorators.csrf importu csrf_exempt

@csrf_exempt def my_view (Request): HttpResponse powrotnej („Hello World”)

Wyłączenie pośredniej CSRF.

4

Dodaj do ty settings.py to 2 linie:

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

+0

Zwykle błąd powie Ci, że musisz dołączyć pierwszy, ale nie powie ci, aby dołączyć drugi. +1 do wpisania tutaj, bo to rozwiązało mój problem :) – g19fanatic

0

praca to dodanie

{% csrf_token %} 

moje postacie wygląda następująco:

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

w znacznikach pliku szablonu i sprawdź, czy "django.middleware.csrf.CsrfViewMiddleware" znajduje się w pliku ustawień, domyślnie jest to