Я пытался использовать Cook ie сеансов для сохранения данных пользователя, я успешно использовал сеанс в моих предыдущих приложениях, но на этот раз он не работает должным образом
Я знаю, что для получения значения сеансового ключа сеанс должен быть изменен или сохранен.
Итак, что я делал раньше, это создавал миксин и использовал его для вызова того представления, в котором мне нужен сеансовый ключ. захватите ключ сеанса и сохраните это значение в поле экземпляра, но ключ сеанса равен None, или, если я изменю свой код на то, что я написал внизу, он создает новый ключ сеанса при каждом запросе
Вот 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()