From 44e6ce655291ea3bd5ff47c09754ef0fb998f36f Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Sun, 15 Jan 2006 06:18:03 +0000 Subject: [PATCH] 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 --- AUTHORS | 1 + django/middleware/sessions.py | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/AUTHORS b/AUTHORS index 92581cf547..e9316b700d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -35,6 +35,7 @@ answer newbie questions, and generally made Django that much better: Andreas David Ascher Arthur + Jiri Barton James Bennett Paul Bissex Simon Blanchard diff --git a/django/middleware/sessions.py b/django/middleware/sessions.py index 545ee38fa8..d6d25de276 100644 --- a/django/middleware/sessions.py +++ b/django/middleware/sessions.py @@ -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