Sessionのユーザーの取得

Djangoでセッションレコードがどのユーザーのものかを判定するには、以下のようにします。

1
2
3
4
5
6
7
8
from django.contrib.sessions.models import Session
from django.contrib.auth.models import User

for session in Session.objects.all():
    uid = session.get_decoded().get('_auth_user_id')
    if uid:
        user = User.objects.get(id=uid)
        print(user.username)

参考文献:

  1. Django ドキュメント | セッションの使いかた

ソース: Bing との会話 2023/5/30

SessionStoreをつかう

1
2
3
4
5
6
7
from django.contrib.sessions.backends.db import SessionStore

key = "3gsbhdfm4g2uyyieaaxl1omor2p5f1on"
store = SessionStore(session_key=key)

store["ssout_required"] = True
store.save()