Semblable à cette question L'objet 'WSGIRequest' n'a pas d'attribut 'session'
Mais mes classes de MIDDLEWARE sont dans le bon ordre.
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',
]
Je suis en train de rediriger pour me connecter
url(r'^$', RedirectView.as_view(url='login/')),
url(r'^login/$', 'membership.views.loginView', name='login'),
et alors
def loginView(request):
a = request.session
Jette l'erreur
MIDDLEWARE
est un nouveau paramètre dans 1.10 qui remplacera l'ancien MIDDLEWARE_CLASSES
.
Étant donné que vous utilisez actuellement la version 1.9, Django ne reconnaît pas le paramètre MIDDLEWARE
. Vous devriez utiliser le paramètre MIDDLEWARE_CLASSES
à la place:
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',
]
Django 2.0
Vous pouvez essayer ceci dans votre settings.py, MIDDLEWARE_CLASSES = [....]:
Remplacez MIDDLEWARE_CLASSES = [...] parMIDDLEWARE= [...]
Supprimez SessionAuthenticationMiddleware de la liste MIDDLEWARE =.
Le paramètre MIDDLEWARE_CLASSES est obsolète dans Django 1.10 et supprimé dans Django 2.0.
La classe SessionAuthenticationMiddleware est supprimée. Il a fourni n ° __. fonctionnalité puisque l'authentification de session est activée sans condition dans Django 1.10.
Cette erreur peut également être levée lorsque vous avez une faute de frappe. c'est à dire.
request.sesion ...
au lieu de
request.session ...
Vérifiez l'ordre du middleware. Si vous essayez d'y accéder via certains middlewares répertoriés au-dessus du middleware de session, vous obtiendrez cette erreur.