【问题标题】:File upload - Bad request (400)文件上传 - 错误请求 (400)
【发布时间】:2014-08-03 04:49:47
【问题描述】:

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

如何进一步调试此问题?

【问题讨论】:

  • 您应该发布上传图片的代码。我希望你使用正确的enctype
  • @DanielFigueroa 问题的关键是要知道如何调试这些东西,而不仅仅是解决错误 400。

标签: python django


【解决方案1】:

在我的例子中,它是 models.py 中的前导“/”字符。

/products/ 更改为products/

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

【讨论】:

  • 我认为这也是我的问题。解决问题后我忘了在这里提交答案。 :)
【解决方案2】:

请检查您的上传位置。我也有 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

【讨论】:

    【解决方案3】:

    确实如此,在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 2017-02-11
      • 2019-12-02
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多