Django创建会话,注销后不会破坏

时间:2018-12-17 05:50:27

标签: django python-3.x django-sessions

在我的django项目中,我想要一个仅在特定时间后销毁的会话,为此,我设置了到期时间,但注销后会话也销毁了。

基本上我想要的会话不受任何登录/注销活动的影响。

我在搜索它,但找不到任何解决方案,有人帮助我。

2 个答案:

答案 0 :(得分:1)

好吧,当您呼叫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或任何临时存储。

答案 1 :(得分:0)

尝试一下:

Views.py

from django.contrib.auth import logout

def logoutUser(request):
    logout(request)
    messages.success(request,"Successfully logged out")
    return redirect("login")