【发布时间】:2020-03-31 12:01:20
【问题描述】:
我一直在尝试使用 cookie 会话来保存用户的数据,我在以前的应用程序中成功使用了会话,但这次它不能正常工作
我知道为了获得会话密钥的值,会话必须修改或保存。
所以我以前做的是制作一个 mixin,并在我需要会话密钥的视图上调用它,这里的情况是获取会话密钥并将该值保存在实例字段中,但是会话密钥为无,或者如果我将代码更改为我在底部编写的代码,它会在每次请求时创建一个新的会话密钥
这是我在以前的应用程序中使用的 mixin,它运行良好
class SessionMixin:
def get_session(self,request,*args,**kwargs):
session = self.request.session
if not session.get('has_session'):
session["has_session"] = True
return self.__class__.get(self,request,*args,**kwargs)
class MyView(SessionMixin,generic.View):
def get(self,request,*args,**kwargs):
super().get_session(self,request,*args,**kwargs)
print(self.request.session.session_key,"Gives me none")
# rest of the code goes here
我的会话 cookie 设置
SESSION_COOKIE_AGE = 604800
SESSION_ENGINE = "django.contrib.sessions.backends.signed_cookies"
这也是我尝试过的,但它只是为每个请求创建了一个会话密钥。
class SessionMixin:
def get(self,request,*args,**kwargs):
session = self.request.session
if not session.session_key:
session.save()
【问题讨论】:
标签: python django django-sessions