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.
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.
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)