Fixed #4729 -- Restored functionality to the Session class so that popping a
value marks it as modified. This was accidentally lost in the changes in [6333]. Thanks, __hawkeye__. git-svn-id: http://code.djangoproject.com/svn/django/trunk@6558 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
4362d154fb
commit
4c0d8d882d
|
@ -48,6 +48,7 @@ class SessionBase(object):
|
||||||
return self._session.get(key, default)
|
return self._session.get(key, default)
|
||||||
|
|
||||||
def pop(self, key, *args):
|
def pop(self, key, *args):
|
||||||
|
self.modified = self.modified or key in self._session
|
||||||
return self._session.pop(key, *args)
|
return self._session.pop(key, *args)
|
||||||
|
|
||||||
def set_test_cookie(self):
|
def set_test_cookie(self):
|
||||||
|
|
|
@ -3,6 +3,7 @@ r"""
|
||||||
>>> from django.contrib.sessions.backends.db import SessionStore as DatabaseSession
|
>>> from django.contrib.sessions.backends.db import SessionStore as DatabaseSession
|
||||||
>>> from django.contrib.sessions.backends.cache import SessionStore as CacheSession
|
>>> from django.contrib.sessions.backends.cache import SessionStore as CacheSession
|
||||||
>>> from django.contrib.sessions.backends.file import SessionStore as FileSession
|
>>> from django.contrib.sessions.backends.file import SessionStore as FileSession
|
||||||
|
>>> from django.contrib.sessions.backends.base import SessionBase
|
||||||
|
|
||||||
>>> db_session = DatabaseSession()
|
>>> db_session = DatabaseSession()
|
||||||
>>> db_session.modified
|
>>> db_session.modified
|
||||||
|
@ -52,6 +53,28 @@ True
|
||||||
>>> cache_session.delete(cache_session.session_key)
|
>>> cache_session.delete(cache_session.session_key)
|
||||||
>>> cache_session.exists(cache_session.session_key)
|
>>> cache_session.exists(cache_session.session_key)
|
||||||
False
|
False
|
||||||
|
|
||||||
|
>>> s = SessionBase()
|
||||||
|
>>> s._session['some key'] = 'exists' # Pre-populate the session with some data
|
||||||
|
>>> s.accessed = False # Reset to pretend this wasn't accessed previously
|
||||||
|
|
||||||
|
>>> s.accessed, s.modified
|
||||||
|
(False, False)
|
||||||
|
|
||||||
|
>>> s.pop('non existant key', 'does not exist')
|
||||||
|
'does not exist'
|
||||||
|
>>> s.accessed, s.modified
|
||||||
|
(True, False)
|
||||||
|
|
||||||
|
>>> s.accessed = False # Reset the accessed flag
|
||||||
|
|
||||||
|
>>> s.pop('some key')
|
||||||
|
'exists'
|
||||||
|
>>> s.accessed, s.modified
|
||||||
|
(True, True)
|
||||||
|
|
||||||
|
>>> s.pop('some key', 'does not exist')
|
||||||
|
'does not exist'
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Reference in New Issue