Added a clear() method to sessions. Patch from mrts. Refs #7515.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@8341 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2008-08-14 03:57:30 +00:00
parent af7b6475ca
commit 31ec68c5d9
3 changed files with 16 additions and 2 deletions

View File

@ -120,6 +120,10 @@ class SessionBase(object):
def iteritems(self): def iteritems(self):
return self._session.iteritems() return self._session.iteritems()
def clear(self):
self._session.clear()
self.modified = True
def _get_new_session_key(self): def _get_new_session_key(self):
"Returns session key that isn't being used." "Returns session key that isn't being used."
# The random module is seeded when this Apache child is created. # The random module is seeded when this Apache child is created.

View File

@ -147,7 +147,15 @@ True
>>> list(i) >>> list(i)
[('x', 1)] [('x', 1)]
# test .clear()
>>> s.modified = s.accessed = False
>>> s.items()
[('x', 1)]
>>> s.clear()
>>> s.items()
[]
>>> s.accessed, s.modified
(True, True)
######################### #########################
# Custom session expiry # # Custom session expiry #

View File

@ -77,7 +77,7 @@ When ``SessionMiddleware`` is activated, each ``HttpRequest`` object -- the
first argument to any Django view function -- will have a ``session`` first argument to any Django view function -- will have a ``session``
attribute, which is a dictionary-like object. You can read it and write to it. attribute, which is a dictionary-like object. You can read it and write to it.
It implements the following standard dictionary methods: A session object has the following standard dictionary methods:
* ``__getitem__(key)`` * ``__getitem__(key)``
@ -106,6 +106,8 @@ It implements the following standard dictionary methods:
* ``setdefault()`` (**New in Django development version**) * ``setdefault()`` (**New in Django development version**)
* ``clear()`` (**New in Django development version**)
It also has these methods: It also has these methods:
* ``set_test_cookie()`` * ``set_test_cookie()``