Fixed #1048 -- Fixed AttributeError in sessions framework when SESSION_SAVE_EVERY_REQUEST is True and no cookie has been set yet. Thanks, Jiri Barton

git-svn-id: http://code.djangoproject.com/svn/django/trunk@1978 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-01-15 06:18:03 +00:00
parent e0af20fb0f
commit 44e6ce6552
2 changed files with 10 additions and 8 deletions

View File

@ -35,6 +35,7 @@ answer newbie questions, and generally made Django that much better:
Andreas
David Ascher <http://ascher.ca/>
Arthur <avandorp@gmail.com>
Jiri Barton
James Bennett
Paul Bissex <http://e-scribe.com/>
Simon Blanchard

View File

@ -69,12 +69,13 @@ class SessionMiddleware:
try:
modified = request.session.modified
except AttributeError:
modified = False
if modified or SESSION_SAVE_EVERY_REQUEST:
session_key = request.session.session_key or sessions.get_new_session_key()
new_session = sessions.save(session_key, request.session._session,
datetime.datetime.now() + datetime.timedelta(seconds=SESSION_COOKIE_AGE))
expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=SESSION_COOKIE_AGE), "%a, %d-%b-%Y %H:%M:%S GMT")
response.set_cookie(SESSION_COOKIE_NAME, session_key,
max_age=SESSION_COOKIE_AGE, expires=expires, domain=SESSION_COOKIE_DOMAIN)
pass
else:
if modified or SESSION_SAVE_EVERY_REQUEST:
session_key = request.session.session_key or sessions.get_new_session_key()
new_session = sessions.save(session_key, request.session._session,
datetime.datetime.now() + datetime.timedelta(seconds=SESSION_COOKIE_AGE))
expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=SESSION_COOKIE_AGE), "%a, %d-%b-%Y %H:%M:%S GMT")
response.set_cookie(SESSION_COOKIE_NAME, session_key,
max_age=SESSION_COOKIE_AGE, expires=expires, domain=SESSION_COOKIE_DOMAIN)
return response