Django sessions TTL support

This commit is contained in:
hellysmile 2013-02-01 04:17:16 +02:00
parent e508625935
commit 2e18199eb2
2 changed files with 14 additions and 3 deletions

View File

@ -45,6 +45,9 @@ into you settings module::
SESSION_ENGINE = 'mongoengine.django.sessions' SESSION_ENGINE = 'mongoengine.django.sessions'
Django provides session cookie, which expires after ```SESSION_COOKIE_AGE``` seconds, but doesnt delete cookie at sessions backend, so ```'mongoengine.django.sessions'``` supports `mongodb TTL
<http://docs.mongodb.org/manual/tutorial/expire-data/>`_.
.. versionadded:: 0.2.1 .. versionadded:: 0.2.1
Storage Storage

View File

@ -31,9 +31,17 @@ class MongoSession(Document):
else fields.DictField() else fields.DictField()
expire_date = fields.DateTimeField() expire_date = fields.DateTimeField()
meta = {'collection': MONGOENGINE_SESSION_COLLECTION, meta = {
'db_alias': MONGOENGINE_SESSION_DB_ALIAS, 'collection': MONGOENGINE_SESSION_COLLECTION,
'allow_inheritance': False} 'db_alias': MONGOENGINE_SESSION_DB_ALIAS,
'allow_inheritance': False,
'indexes': [
{
'fields': ['expire_date'],
'expireAfterSeconds': settings.SESSION_COOKIE_AGE
}
]
}
class SessionStore(SessionBase): class SessionStore(SessionBase):