嗨,我正在尝试在会话中设置一个值,但没有获取该值,我不知道我做错了什么。
设定值
class ClView(GenericAPIView):
def get(self, request, *args, **kwargs):
# Get Method Code
def post(self, request, *args, **kwargs):
cid = request.data['id']
self.request.session['myid'] = cid
request.session.modified = True
return Response(status=status.HTTP_202_ACCEPTED)
获取价值
class MainView(APIView):
def get(self, request, *args, **kwargs):
cid = self.request.session.get('myid')
return Response({"id":cid})
中间件中的'django.contrib.sessions.middleware.SessionMiddleware',
并且已经尝试过没有'self'
据我所知,您正在使用正确的语法获取和设置请求会话。
例如
request.session.get('KEY') # for get
request.session['KEY'] = 1 # for set
根据给定的信息很难说出你的失败是什么。
我对您的设置有几个问题,可能有助于澄清其他人以帮助回答您的问题。
SESSION_COOKIE_AGE
设置为非常低的值?你的问题解决了吗? 我也有同样的问题,不知道怎么解决。
您正在设置
self.request.session
,而您需要设置 request.session
。
class ClView(GenericAPIView):
def get(self, request, *args, **kwargs):
# Get Method Code
def post(self, request, *args, **kwargs):
cid = request.data['id']
request.session['myid'] = cid
request.session.modified = True
return Response(status=status.HTTP_202_ACCEPTED)
class MainView(APIView):
def get(self, request, *args, **kwargs):
cid = request.session.get('myid')
return Response({"id":cid})