【发布时间】:2019-05-17 11:43:13
【问题描述】:
在我的 django 项目中,我想要一个仅在特定时间后销毁的会话,为此我设置了过期时间,但会话在注销后也会销毁。
基本上我想要一个不受任何登录/注销活动影响的会话。
我搜索了它,但没有找到任何解决方案,请帮助我。
【问题讨论】:
标签: django python-3.x django-sessions
在我的 django 项目中,我想要一个仅在特定时间后销毁的会话,为此我设置了过期时间,但会话在注销后也会销毁。
基本上我想要一个不受任何登录/注销活动影响的会话。
我搜索了它,但没有找到任何解决方案,请帮助我。
【问题讨论】:
标签: django python-3.x django-sessions
试试这个:
Views.py
from django.contrib.auth import logout
def logoutUser(request):
logout(request)
messages.success(request,"Successfully logged out")
return redirect("login")
【讨论】:
好吧,当您调用 logout 时,它是 flushes 会话。如果要保留该数据,则需要定义自己的注销功能。你可以这样尝试:
from django.contrib.auth import logout
def logout(request):
your_data = request.session.get('your_key', None)
current_expiry = request.session.get('_session_expiry')
logout(request)
if your_data:
request.session['your_key'] = your_data
if current_expiry:
request.session['_session_expiry'] = current_expiry
仅供参考这是未经测试的代码。此外,如果您不使用会话存储注销后应该持续的数据,也许会更好。您可以为此使用 redis 或任何临时存储。
【讨论】: