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