Django создает сеанс, который не разрушается после выхода из системы - PullRequest
0 голосов
/ 17 декабря 2018

В моем проекте django я хочу сеанс, который уничтожается только через определенное время, для этого я устанавливаю время истечения, но сеанс также разрушается после выхода из системы.

В основном то, что я хочу для сеанса, который не затрагивается никакими действиями по входу / выходу из системы.

Я ищу его, но не нашел никакого решения, кто-нибудь поможет мне.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Попробуйте:

Views.py

from django.contrib.auth import logout

def logoutUser(request):
    logout(request)
    messages.success(request,"Successfully logged out")
    return redirect("login")
0 голосов
/ 17 декабря 2018

Ну, когда вы звоните logout, он сбрасывает сеанс.Если вы хотите сохранить эти данные, вам нужно определить свои собственные функции выхода из системы.Вы можете попробовать вот так:

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

FYI Это непроверенный код.Кроме того, может быть, лучше, если вы не используете сеанс для хранения данных, которые должны сохраняться после выхода из системы.Для этого вы можете использовать Redis или любое временное хранилище.

...