Este error aparece a veces en Middleware personalizado en el método process_response. Tengo la siguiente lista de middleware:El objeto 'WSGIRequest' no tiene atributo 'sesión'
MIDDLEWARE_CLASSES = [
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'application.middleware.LastCampaignSessionMiddleware'
]
Así sesión de middleware se coloca antes de mi middleware. No tengo expresiones del request.session
en el código fuente. Este es el método process_response:
def process_response(self, request, response):
if 'last_campaign_id' in request.session and request.session['last_campaign_id']:
if request.COOKIES['last_campaign_id'] != request.session['last_campaign_id']:
response.set_cookie('last_campaign_id', request.session['last_campaign_id'])
return response
No sé por qué podría suceder en absoluto.
EDITAR 03-08-2012 12-30
Parece navegador solicitante favicon:
[03/Aug/2012 10:26:42] "GET /favicon.ico/ HTTP/1.1" 404 6701
¿No hay ningún comportamiento predeterminado en Django para resolver este url? Porque no especifiqué la vista que debería manejar esta solicitud. Y no uso favicon en el código fuente de la página. Así que supongo que es un navegador que solicita /favicon.ico. Supongo que en caso de error 404, HttpRequest no se compilaría correctamente, por lo que no es de extrañar que no tenga ninguna sesión en el objeto de solicitud. Pero son solo mis suposiciones.
También si es necesario, estoy usando el servidor django dev al obtener este error.
EDITAR 13-00
me han solucionado este problema favicon pero sigue recibiendo el error. ¿Por qué la sesión puede no existir en la solicitud?
¿Cuál es el problema? Si obtiene un error, ¿puede agregar el registro a esta pregunta? – StefanNch
Oh, está en el título: el objeto 'WSGIRequest' no tiene atributo 'sesión'. Ocurre cada vez que trato de obtener cualquier url de mi sitio. Se produce en el método process_response de application.middleware.LastCampaignSessionMiddleware. – sunprophit