From 2e18199eb2cad168f07caefd68f4cdd5f3078135 Mon Sep 17 00:00:00 2001 From: hellysmile Date: Fri, 1 Feb 2013 04:17:16 +0200 Subject: [PATCH 1/2] Django sessions TTL support --- docs/django.rst | 3 +++ mongoengine/django/sessions.py | 14 +++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/django.rst b/docs/django.rst index 144baab5..58eadc60 100644 --- a/docs/django.rst +++ b/docs/django.rst @@ -45,6 +45,9 @@ into you settings module:: 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 +`_. + .. versionadded:: 0.2.1 Storage diff --git a/mongoengine/django/sessions.py b/mongoengine/django/sessions.py index 810b6265..20e6b62e 100644 --- a/mongoengine/django/sessions.py +++ b/mongoengine/django/sessions.py @@ -31,9 +31,17 @@ class MongoSession(Document): else fields.DictField() expire_date = fields.DateTimeField() - meta = {'collection': MONGOENGINE_SESSION_COLLECTION, - 'db_alias': MONGOENGINE_SESSION_DB_ALIAS, - 'allow_inheritance': False} + meta = { + 'collection': MONGOENGINE_SESSION_COLLECTION, + 'db_alias': MONGOENGINE_SESSION_DB_ALIAS, + 'allow_inheritance': False, + 'indexes': [ + { + 'fields': ['expire_date'], + 'expireAfterSeconds': settings.SESSION_COOKIE_AGE + } + ] + } class SessionStore(SessionBase): From d6b4ca7a985c1ba4c25692d9731b8b6cd12e7fb0 Mon Sep 17 00:00:00 2001 From: hellysmile Date: Fri, 1 Feb 2013 04:19:55 +0200 Subject: [PATCH 2/2] Fix docs quotes --- docs/django.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/django.rst b/docs/django.rst index 58eadc60..b2acee72 100644 --- a/docs/django.rst +++ b/docs/django.rst @@ -45,7 +45,7 @@ into you settings module:: 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 +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 `_. .. versionadded:: 0.2.1