User.is_authonticated возвращает ложь на странице входа исключительно django - PullRequest
0 голосов
/ 30 апреля 2020

В базе есть список меню html, Домашняя загрузка ... Вход. Меню входа должно заменяться именем пользователя, если пользователь вошел в систему. Оно работает, за исключением самого меню входа. Я попытался напечатать статус входа пользователя, и он никогда не показывает, что пользователь вошел в систему.

Код базы. html

<div class="navbar-nav">
      <a class="nav-item nav-link {{ home }} " href="{% url 'home' %}">Home <span class="sr-only">(current)</span></a>
      <a class="nav-item nav-link {{ download }}" href="{% url 'download' %}">Download</a>
      <a class="nav-item nav-link {{ highScore }}" href="{% url 'highScore' %}">High Score</a>
      <a class="nav-item nav-link {{ about }}" href="{% url 'about' %}">About</a>
  {% if user.is_authenticated %}
      <a class="nav-item nav-link {{ user }}" href="{% url 'user' %}"> Hi {{ user.username }}</a>
  {% else %}
      <a class="nav-item nav-link {{ user }}" href="{% url 'user' %}">sign in</a>
  {% endif %} 
</div>

снимок экрана 1 показывает имя пользователя, поскольку пользователь подписан in и user.is_authenticated вернули true screenshot 1 shows username in other menus

снимок экрана 2: Пользователь подписан, а user.is_authenticated вернул false на этой странице, поэтому имя пользователя не отображается. screenshot 2 doesn't shows username

1 Ответ

1 голос
/ 30 апреля 2020

Но django напечатайте имя в первом пи c ... это то, что вы хотите ??

  • у вас есть проблема в DTL, код должен быть
  {% if user.is_authenticated %}
      <a class="nav-item nav-link {{ user }}" href="{% url 'user' %}"> Hi {{ user.username }}</a>
  {% else %}
      <a class="nav-item nav-link {{ user }}" href="{% url 'signinlink' %}">sign in</a>
  {% endif %} 

и я не могу понять, почему вы используете {{user}} в качестве html class

...