Я получаю идентификатор администратора, но когда я вхожу в систему как пользователь, я все еще получаю идентификатор администратора, когда я пытаюсь получить идентификатор пользователя
я создал функцию в моем файле 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().