文件上传 - 错误请求(400)

时间:2013-07-21 16:06:39

标签: python django

当我尝试使用Django管理通过我的模型的FileField上传文件时,我得到Django开发服务器的以下响应:

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

控制台中唯一的输出是:

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

我试图找到一个错误日志,但在阅读了几个答案后,我认为没有这样的,因为Django通常在Debug=True(我的情况)时将调试信息直接打印到浏览器窗口。

如何进一步调试此问题?

3 个答案:

答案 0 :(得分:14)

在我的情况下,它是models.py中的前导'/'字符。

/products/更改为products/

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

答案 1 :(得分:4)

请检查您的上传位置。我也有400,在我的情况下,这是一个许可问题。

  

ERROR 2013-12-15 19:23:37,044 base 22938 140546689459968尝试访问'/uploads/nook.jpg'被拒绝。

如此处所示配置日志记录帮助我:https://docs.djangoproject.com/en/1.6/topics/logging/#configuring-logging

答案 2 :(得分:2)

这是真的,有时很难在django中找到错误日志,但我发现另一种获取与django相关的错误日志的方法。

安装django-db-log软件包并配置settings.py     pip install django-db-log --upgrade或easy-install 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
..........
...........

你的django项目现在将其所有例外记录到表djangodblog_error中。我们现在需要的只是视图或模板中的异常,以便应用程序捕获错误。

如果出现问题,请阅读此链接:https://github.com/dcramer/django-db-log