Не удалось изменить вид ссылки ** Login-Logout ** в шаблонах. Застрял в ** Войти ** только. Вид входа не меняется на Выход, если вы уже вошли в систему - PullRequest
0 голосов
/ 14 июня 2019

Я создаю приложение для некоторой работы.Для работы требуется логин пользователя.Все работает нормально, кроме изменения вида login на logout .

ТАК это мой код для user_login и user_logout в view.py

    from django.shortcuts import render
    from purpose_finder import forms
    from purpose_finder.functions import find_purpose
    from purpose_finder.forms import UserForm,UserProfileInfoForm
    from django.urls import reverse
    from django.contrib.auth.decorators import login_required
    from django.http import HttpResponse,HttpResponseRedirect
    from django.contrib.auth import login,logout,authenticate

    @login_required
    def user_logout(request):
        logout(request)

    return HttpResponseRedirect(reverse('index'))

, и это для user_login

    def user_login(request):
        if request.method=="POST":
          username=request.POST.get('username') #get field from HTML code
          password=request.POST.get('password')

          user=authenticate(request, username=username,password=password)

          if user:
              if user.is_active:
                  login(request,user)
                  return HttpResponseRedirect(reverse('index'))
              else:
                  return HttpResponse("Account Deactivated")

          else:
              return HttpResponse("Login Failed!!")

    else:
          return render(request,'purpose_finder/login.html',{})

и это код для base.html , который наследуется для большинства форм с использованием Bootstrap для статической навигационной панели сверху

    <nav class="navbar navbar-default navbar-static-top">
        <div class="container">
            <ul class="nav navbar-nav">
                <li><a class="navbar-brand" href="{% url 'index' %} " 
                    >Home</a></li>
                <li><a class="navbar-link" href="{% url 'admin:index' %}" 
                     >Admin</a></li>
                <li><a class="navbar-link" href="{% url 
                    'purpose_finder:user_register' %}" >Register</a></li>
                {% if user.is_auhenticated %}
                      <li><a class="navbar-link"  href="{% url 
                       'user_logout' %}">Logout</a></li>
                 {% else %}
                      <li><a class="navbar-link" href="{% url 
                        'purpose_finder:user_login' %}" >Login</a></li>

                       {% endif %}
                     </ul>
                  </div>
               </nav>

Я могу войти в систему и выйти из системы, если я предоставлю обе кнопки одновременно в навигационной панели, но я застрял в учетной записи, только когда используется с {% if user.is_authenticated%} .И дело в том, что этот ** user.is_authenticated ** не показывает никаких результатов.Когда я печатал значение в оболочке, он показывал True , но он не показывает никакого результата в base.html при введении.Любая помощь будет оценена.

...