Есть ли какое-либо поле, противоположное is_superuser?

#python #django #django-models #django-forms #django-views

#python #django #django-модели #django-формы #django-просмотры

Вопрос:

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

——base.html—-

 {% if user.is_active and user.is_authenticated and user.is_not_superuser %}
       <a href="{% url 'accounts:logout' %}" class="get-started-btn">Logout</a>
       {% endif %}
      {% else %}
         <a href="{% url 'accounts:signup' %}" class="get-started-btn">Get Started</a>
      {% endif %}
  

Комментарии:

1. Вы работаете в одном браузере, поэтому все вкладки используют один и тот же файл cookie сеанса и имеют одну и ту же информацию о сеансе. Используйте два разных экземпляра браузера, если вы хотите протестировать двух разных пользователей одновременно.

2. Большое вам спасибо. Это краткое объяснение действительно полезно

Ответ №1:

Если вы войдете в панель администратора, вы также автоматически войдете на веб-сайт. Вот почему вы видите кнопку выхода. Тот же сеанс и файлы cookie

И используйте if not user.is_superuser , если вам это все еще нужно.