6
6
from django .contrib .sessions .backends .db import SessionStore as DBStore
7
7
from django .core .cache import cache
8
8
9
+ KEY_PREFIX = "django.contrib.sessions.cached_db"
10
+
9
11
class SessionStore (DBStore ):
10
12
"""
11
13
Implements cached, database backed sessions.
@@ -15,22 +17,24 @@ def __init__(self, session_key=None):
15
17
super (SessionStore , self ).__init__ (session_key )
16
18
17
19
def load (self ):
18
- data = cache .get (self .session_key , None )
20
+ data = cache .get (KEY_PREFIX + self .session_key , None )
19
21
if data is None :
20
22
data = super (SessionStore , self ).load ()
21
- cache .set (self .session_key , data , settings .SESSION_COOKIE_AGE )
23
+ cache .set (KEY_PREFIX + self .session_key , data ,
24
+ settings .SESSION_COOKIE_AGE )
22
25
return data
23
26
24
27
def exists (self , session_key ):
25
28
return super (SessionStore , self ).exists (session_key )
26
29
27
30
def save (self , must_create = False ):
28
31
super (SessionStore , self ).save (must_create )
29
- cache .set (self .session_key , self ._session , settings .SESSION_COOKIE_AGE )
32
+ cache .set (KEY_PREFIX + self .session_key , self ._session ,
33
+ settings .SESSION_COOKIE_AGE )
30
34
31
35
def delete (self , session_key = None ):
32
36
super (SessionStore , self ).delete (session_key )
33
- cache .delete (session_key or self .session_key )
37
+ cache .delete (KEY_PREFIX + ( session_key or self .session_key ) )
34
38
35
39
def flush (self ):
36
40
"""
@@ -39,4 +43,4 @@ def flush(self):
39
43
"""
40
44
self .clear ()
41
45
self .delete (self .session_key )
42
- self .create ()
46
+ self .create ()
0 commit comments