Расширение промежуточного программного обеспечения сеанса - PullRequest
2 голосов
/ 06 марта 2012

Я использую Django 1.3, и я хотел бы изменить промежуточное программное обеспечение сеанса, чтобы добавить некоторые методы, которые помогут мне.

In ./settings.py

SESSION_ENGINE='tcore.my_sessions.MySessionStore'

In ./tcore/my_sessions.py:

from django.contrib.sessions.backends.db import SessionStore
from django.contrib.sessions.middleware import SessionMiddleware
from django.conf import settings

class MySessionStore(SessionStore):    
    ....
    def my custom methods here

Тем не менее, я продолжаю получать некоторые странные исключения, когда я делаю это.Как правильно создать собственный движок сессий?

AttributeError at /create/
type object 'MySessionStore' has no attribute 'SessionStore'
Request Method: GET
Request URL:    http://localhost:8000/create/
Django Version: 1.3.1
Exception Type: AttributeError
Exception Value:    
type object 'MySessionStore' has no attribute 'SessionStore'

Python Version: 2.6.1

1 Ответ

3 голосов
/ 06 марта 2012

Глядя на документацию SESSION_ENGINE , возьмите такой пример: django.contrib.sessions.backends.file. Источник этого модуля определяет класс SessionStore. Вот что вы тоже должны сделать:

.

/ tcore / my_sessions.py:

from django.contrib.sessions.backends.db import SessionStore as DbSessionStore

class SessionStore(DbSessionStore):
    def __init__(self, *args, **kwargs):
        print 'hello from SessionStore'
        super(SessionStore, self).__init__(*args, **kwargs)

settings.py:

SESSION_ENGINE='tcore.my_sessions'
...