How can I find out the request.session sessionid and use it as a variable?

Viewed 73107

I'm aware that you can get session variables using request.session['variable_name'], but there doesn't seem to be a way to grab the session id as a variable in a similar way. Is this documented anywhere? I can't find it.

8 Answers
request.session.session_key

Note the key will only exist if there is a session, no key, no session. You can use this to test if a session exists. If you want to create a session, call create.

Django sessions save their key in a cookie. At least its middleware extracts it like this:

from django.conf import settings
session_key = request.COOKIES[settings.SESSION_COOKIE_NAME]

To reliably get the session key, you need to make sure the session has been created first. The documentation mentions a .create() session method, which can be used to make sure there's a session key:

def my_view(request):
    if not request.session.session_key:
        request.session.create()

    print(request.session.session_key)

Use:

request.COOKIES['sessionid']
Related