Django中间件错误-中间件已更改为1.7


问题内容

每当我在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.

问题答案:

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

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