Я не могу получить доступ к session_key
в моем пользовательском промежуточном программном обеспечении Django. Я пытаюсь получить к нему доступ, используя:
session = Session.objects.get(pk=request.session._session_key)
or
session_key = request.COOKIES[settings.SESSION_COOKIE_NAME]
session = Session.objects.get(pk=session_key)
Я получаю сообщение об ошибке:
Session matching query does not exist.
Я поместил свое промежуточное ПО в конец MIDDLEWARE_CLASSES
и после django.contrib.sessions.middleware.SessionMiddleware
в моем settings.py
файле.
Я могу установить ключи сеанса в промежуточном программном обеспечении, но похоже, что session_key создается / становится доступным только после отображения полной страницы. Потому что, когда страница отображается впервые, {{ request.session.session_key }}
возвращает None
в моем шаблоне. Когда я обновляю страницу, я вижу session_key
. Любые советы о том, как я могу получить доступ к session_key
, очень приветствуются.
request.session
напрямую? - person Daniel Roseman   schedule 17.05.2012process_response
промежуточном программном обеспечении сеанса - потому что им нужно хранить что-либо из представления, и они не могут этого сделать, пока представление не будет полностью обработано. - person ilvar   schedule 18.05.2012