2013-07-21 22 views
7

Kiedy próbuję przesłać plik przez FileField mojego modelu przy użyciu administracji Django dostaję następującą odpowiedź z Django serwera rozwój:przesyłanie plików - Bad żądanie (400)

<h1>Bad Request (400)</h1> 

Jedyne wyjście w konsoli:

[21/Jul/2013 17:55:23] "POST /admin/core/post/add/ HTTP/1.1" 400 26 

Próbowałem znaleźć dziennik błędów, ale po przeczytaniu kilku odpowiedzi tutaj myślę, że nie ma nic takiego, ponieważ Django zwykle drukuje informacje debugowania bezpośrednio do okna przeglądarki, gdy Debug=True (mój przypadek).

Jak mogę dalej rozwikłać ten problem?

+0

Należy pisać kod, który przesyła obraz. Mam nadzieję, że używasz poprawnego 'enctype'. –

+0

@ Danielfigueroa Punktem pytania było wiedzieć, jak debugować tego rodzaju rzeczy, nie tylko aby rozwiązać błąd 400. –

Odpowiedz

14

W moim przypadku to był czołowym bohaterem models.py „/”.

Zmieniono /products/ do products/ w:

product_image = models.ImageField(upload_to='products/')

+0

Myślę, że to był mój problem. Zapomniałem podać odpowiedź tutaj po rozwiązaniu problemu. :) –

2

To prawda, czasami trudno jest znaleźć dziennik błędów w django, ale odkryłem inny sposób na uzyskanie dziennika błędów związanego z django.

zainstalować pakiety django-db-dzienników i skonfigurować settings.py pip zainstalować django-db-log --upgrade lub łatwo zainstalować django-db-log

DBLOG_CATCH_404_ERRORS = True # enable the catching 
MIDDLEWARE_CLASSES=('djangodblog.DBLogMiddleware',) 
INSTALL_APPS =('djangodblog',) 
$ ./manage.py syncdb 
Creating table djangodblog_error 
Installing index for djangodblog.ErrorBatch model 
.......... 
........... 

projektu Django teraz zaloguj wszystkie swoje wyjątki do tabeli djangodblog_error. jedyne, czego potrzebujemy, to wyjątek w widokach lub szablonach aplikacji do wychwytywania błędów.

przeczytać ten link w przypadku emisji: https://github.com/dcramer/django-db-log

Powiązane problemy