当我尝试使用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
(我的情况)时将调试信息直接打印到浏览器窗口。
如何进一步调试此问题?
答案 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