2013-07-21 5 views
7

私はDjangoの管理を使用して、私のモデルのFileFieldに経由でファイルをアップロードしようとすると、私はDjangoの開発サーバからの応答を以下の取得:ファイルアップロード - バート要求(400)

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

コンソールで唯一の出力は次のとおりです。

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

私はエラーログを見つけようとしましたが、ここで答えを少し読んだら、Djangoは通常、Debug=True(私の場合)のブラウザ情報に直接デバッグ情報を表示するので、

この問題をさらにデバッグするにはどうすればよいですか?

+0

はでproducts/から/products/を変更しました。そして私はあなたが正しい 'enctype'を使用していることを期待しています。 –

+0

@DanielFigueroa質問のポイントは、エラー400を解決するだけでなく、これらの種類のデバッグ方法を知ることでした。 –

答えて

14

私の場合、それはmodels.pyで先頭に「/」文字でした。あなたが画像をアップロードコードを投稿する必要があり

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

+0

これも私の問題だと思います。私は問題を解決した後、ここに答えを提出するのを忘れていました。 :) –

2

実際、djangoでエラーログを見つけることは時々難しいですが、私はdjangoに関連するエラーログを取得する別の方法を発見します。

ジャンゴ-DB-ログのパッケージをインストールしてインストールPIP settings.py を設定--upgradeジャンゴ-DBのログまたは今

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 
.......... 
........... 

あなたのDjangoプロジェクトをジャンゴ-DBは、ログに記録する簡単なインストールすべての例外をテーブルdjangodblog_errorに記録します。私たちが今必要とするのは、エラーをキャッチするアプリケーションのビューまたはテンプレートの例外です。

問題の場合には、このリンクをお読みください。https://github.com/dcramer/django-db-log

4

をアップロードの場所を確認してください。私も400を持っていたし、私の場合は許可の問題だった。

エラー2013-12-15 19:23:37,044ベース22938 140546689459968 '/uploads/nook.jpg'へのアクセスが拒否されました。ここに示すように、ロギングの設定

は私を助けた:https://docs.djangoproject.com/en/1.6/topics/logging/#configuring-logging