7

当我尝试使用 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(我的情况)时将调试信息直接打印到浏览器窗口。

如何进一步调试此问题?

4

3 回答 3

14

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

更改/products/products/

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

于 2014-08-02T20:49:47.863 回答
4

请检查您的上传位置。我也有 400 个,就我而言,这是一个许可问题。

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

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

于 2013-12-15T19:33:59.163 回答
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

于 2013-07-21T17:00:29.813 回答