2013-12-01 2 views
2

Как изменить ключ сеанса, используемый сеансом django? Я хотел бы поддерживать несколько одновременных сеансов в одном браузере, указав ID в URL-адресе, а затем включив этот идентификатор в ключ сеанса.Установить ключ сеанса

Я попытался просто:

request.session.session_key += key 

Но я получаю AttributeError сказать, что я «не могу установить атрибут».

ответ

1

Вы можете достичь этого, написав свой собственный SessionMiddleware (на основе Django's django.contrib.sessions.middleware.SessionMiddleware), который поддерживает поиск и сохранение нескольких отдельных сеансов, связанных с одним и тем же пользователем.

Посмотрите на источник SessionMiddlware, кажется, что он просто получает куки-файл по имени «sessionid» (по умолчанию), создает экземпляр enging.SessionStore и сохраняет его как атрибут «session» экземпляра запроса.

Вы можете теоретически сделать то же самое только получение/настройку собственных имен файлов cookie (то есть постфиксацию с идентификатором, переданным в параметрах запроса), и сохранение его в вашем собственном атрибуте (т.е. request.custom_sessions), а затем сможете использовать там, где доступен экземпляр запроса.

Смежные вопросы