Я использую аутентификацию Django с моей формой входа в шаблон, после того как я нажал кнопку входа в форму, страница обновилась, но я не могу войти в систему и не отображает ошибку {{context}} вшаблон.
Мой взгляд:
def login_view(request):
if request.method == 'POST':
all_categories = Categories.objects.all()
all_websites = Website.objects.all()
all_discounts = Discount.objects.order_by('-id')
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('/',categories=all_categories,websites=all_websites,discounts=all_discounts)
else:
context = 'wrong username or password'
all_categories = Categories.objects.all()
all_websites = Website.objects.all()
all_discounts = Discount.objects.order_by('-id')
return redirect('/',categories=all_categories,websites=all_websites,discounts=all_discounts,context=context)
Моя форма (header.html)
<div class="col-md-3 top-info-cart text-right mt-lg-4">
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}.</p>
<p><a href="{% url 'frontend:logout' %}">logout</a></p>
{% else %}
<ul class="cart-inner-info">
<li class="button-log">
<a class="btn-open" href="#">
<span class="fa fa-user" aria-hidden="true"></span>
</a>
</li>
</ul>
<p>{{context}}</p>
{% endif %}
<!---->
<div class="overlay-login text-left">
<button type="button" class="overlay-close1">
<i class="fa fa-times" aria-hidden="true"></i>
</button>
<div class="wrap">
<h5 class="text-center mb-4">Login Now</h5>
<div class="login p-5 bg-dark mx-auto mw-100">
<form action="{% url 'frontend:login' %}" method="post">
{% csrf_token %}
<div class="form-group">
<label class="mb-2">User name</label>
<input type="text" name="username" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
<small id="emailHelp" class="form-text text-muted">We'll never share your informations with anyone else.</small>
</div>
<div class="form-group">
<label class="mb-2">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1"type="password">
</div>
<button type="submit" class="btn btn-primary submit mb-4" value="Login">Sign In</button>
<p>Don't have an account? <a href="{% url 'frontend:signup' %}" style="color: orange;">SIGN UP </a></p>
</form>
</div>
<!---->
</div>
</div>
И мой urls.py:
from django.urls import path
from .import views
app_name = 'frontend'
urlpatterns = [
#index
path('',views.index, name='index'),
#/discount/id
path('<id>/',views.single,name='single'),
#/category/category_name
path('category/<name>',views.category,name='category'),
#/signup
path('signup',views.signup,name='signup'),
#/logout
path('logout',views.logout,name='logout'),
#/login
path('login',views.login_view,name='login')
]
Это из-за неверной аутентификации или функции просмотра?Я пытался это исправить, но до сих пор не понял.Надеюсь, кто-нибудь может мне помочь:)