从Django升级到1.9时,“WSGIRequest”对象没有属性“session”

2024-05-02 06:58:48 发布

您现在位置:Python中文网/ 问答频道 /正文

类似于这个问题'WSGIRequest' object has no attribute 'session'

但是我的中间件类的顺序是正确的。

INSTALLED_APPS = [
    'django.contrib.sessions',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'membership',
    'treebeard',
    'haystack',
    'reversion',
]

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

我正在重定向到登录

url(r'^$',  RedirectView.as_view(url='login/')),
url(r'^login/$', 'membership.views.loginView', name='login'),

然后

def loginView(request):
    a = request.session

抛出错误


Tags: djangoauthurlobjectrequestsessionlogincontrib
3条回答

检查中间件的顺序,如果您试图在会话中间件上面列出的某些中间件上访问它,您将得到此错误。

Django 2.0

您可以在settings.py中尝试此操作,中间件类=[…..]:

  • 将中间件类更改为中间件类

  • 从MIDDLEWARE=[…]列表中删除SessionAuthenticationMiddleware。

The MIDDLEWARE_CLASSES setting is deprecated in Django 1.10, and removed in Django 2.0.

The SessionAuthenticationMiddleware class is removed. It provided no functionality since session authentication is unconditionally enabled in Django 1.10.

MIDDLEWARE是1.10中的新设置,它将替换旧的MIDDLEWARE_CLASSES

由于您当前使用的是1.9,Django无法识别MIDDLEWARE设置。您应该改用MIDDLEWARE_CLASSES设置:

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

相关问题 更多 >