Я получаю идентификатор администратора, но когда я вхожу в систему как пользователь, я все еще получаю идентификатор администратора, когда я пытаюсь получить идентификатор пользователя

я создал функцию в моем файле views.py, которая позволяет вам видеть различные панели в соответствии с ролью электронной почты, которая входит в систему теперь, когда я пытаюсь получить идентификатор пользователя, я получаю идентификатор пользователя, который был зарегистрирован на сервере до того, какие изменения я должен сделать для этого.Я пытался очистить сессию во время выхода, но это все еще не работает, и код получает мне идентификатор предыдущего входа в админ.

 def determine_role(request):
    user = request.user  # Get the authenticated user object
    role = user.role  # Access the role attribute
    # Now you can use the role to perform further actions
    if role == 'admin':
        # If the user is an admin, do something
        return render(request, 'loginapp/admin_dashboard.html')
    elif role == 'user':
        # If the user is a regular user, do something else
        return render(request, 'loginapp/user_dashboard.html')   

Я не знаю, очищаете ли вы сессию вручную. Если да, то вам следует использовать функцию logout, которую Django предоставляет вам для выхода пользователя из сессии. Вы можете найти эту функцию в django.contrib.auth.logout(). Согласно документации Django:

При вызове функции logout() данные сессии для текущего запроса полностью очищаются. Все существующие данные удаляются. Это делается для того, чтобы другой человек не смог использовать тот же веб-браузер для входа в систему и получить доступ к данным сессии предыдущего пользователя. Если вы хотите поместить в сессию что-либо, что будет доступно пользователю сразу после выхода из системы, сделайте это после вызова django.contrib.auth.logout().

Вернуться на верх