类似于这个问题'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
抛出错误
检查中间件的顺序,如果您试图在会话中间件上面列出的某些中间件上访问它,您将得到此错误。
Django 2.0
您可以在settings.py中尝试此操作,中间件类=[…..]:
将中间件类更改为中间件类
从MIDDLEWARE=[…]列表中删除SessionAuthenticationMiddleware。
MIDDLEWARE
是1.10中的新设置,它将替换旧的MIDDLEWARE_CLASSES
。由于您当前使用的是1.9,Django无法识别
MIDDLEWARE
设置。您应该改用MIDDLEWARE_CLASSES
设置:相关问题 更多 >
编程相关推荐