環境
WSL2:Ubuntu 20.04
Python:3.8.5
Django:3.1
DjangoRestFramework:3.12.2
発生している問題・エラーメッセージ
DjangoRestFrameworkを使ってAPI開発をしています。
リクエストを受けたときにセッションに情報を記憶して、利用しようとしているのですが、
新たにリクエストを受けたときにセッション情報が消えてしまいます。
セッションの設定は以下のようにしています。
Python
1INSTALLED_APPS = [ 2 'django.contrib.sessions', 3] 4 5MIDDLEWARE = [ 6 'django.contrib.sessions.middleware.SessionMiddleware', 7] 8 9SESSION_ENGINE = "django.contrib.sessions.backends.cache" 10SESSION_SAVE_EVERY_REQUEST = True 11
該当のソースコード
Python
1from rest_framework import status, views 2from rest_framework.response import Response 3 4class Message(views.APIView): 5 def post(self, request, *arg, **kwargs): 6 # 常に空で出力される 7 print(request.session.keys()) 8 # セッションが無い場合、セッションに保存する 9 # セッションがある場合、print関数で出力する 10 if 'hoge' not in request.session: 11 request.session.set_expiry(300) 12 request.session['hoge'] = 'huga' 13 # この時点では、hogeが存在する 14 print(request.session.keys()) 15 else: 16 # リクエストを受けたときにはsessionが空になっていて、else文に入らない 17 print(request.session['hoge']) 18 19 return Response({'huga':'success'}, status.HTTP_200_OK)
試したこと
セッションエンジンの設定をキャッシュ、ファイル、データベースと試したのですが全て同じ結果でした。
あなたの回答
tips
プレビュー