【问题标题】:Django Middleware Error - Middleware changed for 1.7Django 中间件错误 - 为 1.7 更改了中间件
【发布时间】:2017-04-11 08:39:31
【问题描述】:

每当我使用我的 django 项目运行本地服务器时,我都会收到一条警告和一条错误消息,指出在 Django 1.7 中全局中间件类已更改——即使我使用的是 1.8。我的博客http://127.0.0.1:8000/ 加载正常,但是当我尝试加载管理站点时,我得到AttributeError at /admin/ 'WSGIRequest' object has no attribute 'user',据我所知,这与中间件有关。提前感谢您的帮助

编辑:我的中间件:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

错误信息:

Warnings
?: (1_7.W001) Middleware_Classes is not set.
    Hint: Django 1.7 changed the global defaults for the middleware_classes. django.contrib.auth.middleware.AuthenticationMiddleware, django.contrib.sessions.middleware.SessionMiddleware, and django.contrib.messages.middleware.MessageMiddleware, were removed from the defaults. If your project needs this middleware then you should configure this middleware.

【问题讨论】:

  • 我们无法提供帮助,因为您没有包含中间件设置或完整的错误消息。

标签: python django django-admin


【解决方案1】:

MIDDLEWARE 设置是在 Django 1.10 中引入的。如果您使用的是 Django 1.9 或更早版本,它将没有效果,您应该改用 MIDDLEWARE_CLASSES 设置。

确保您使用的是正确版本的文档(例如Django 1.8Django 1.11),以便您遵循正确的说明。

【讨论】:

  • 不知道出了什么问题 - 我使用 1.8 创建它,但我不记得更改它!
【解决方案2】:

我使用django 1.11 创建了我的项目,但是当我将文件传输到网络服务器时,我遇到了fcgi 的错误,这迫使我降级到1.8。因此出现错误是因为管理员现在期待MIDDLEWARE_CLASSES 代替 MIDDLEWARE。 更改解决了错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多