Django: how to access session_key in middleware

I cannot access session_keyin my usual Django middleware. I am trying to access it using:

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)

I get an error message:

Session matching query does not exist.

I put my middleware at the end MIDDLEWARE_CLASSESand after django.contrib.sessions.middleware.SessionMiddlewarein a file settings.py.

I can set session keys in middleware, but it looks like session_key is generated / available only after the full page is displayed. Because when the page is displayed for the first time, it {{ request.session.session_key }}returns Nonein my template. When I refresh the page, I see session_key. Any advice on how I can access session_keyis very welcome.

+3
2

. , .

, :

request.session.save()

( _id , varchar ):

visitor = Visitor()
visitor.session_id = request.session.session_key
visitor.save()
+3

, ?

Session.objects.get(session_key=request.session.session_key)

, , @ilvar , .

+1

All Articles