Django Аутентификация с помощью метода login() в представлениях на основе классов
Пытаясь создать форму входа/регистрации, я столкнулся с проблемой. Я строю свою форму с помощью представлений на основе классов, и я хочу использовать метод login() для аутентификации. Проблема в том, что он не работает, даже если я следовал тому же примеру, что и в документации.
Вот мой код:
views.py:
def login(request):
if request.method == 'POST':
form = MyLoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect("/home")
else:
messages.error(request, 'There Was An Error Logging In, Try Again...')
else:
form = MyLoginForm()
return render(request, 'users/firstAction/login.html', {'form': form})
Мой шаблон:
<body>
<div class="limiter">
<div class="container-login100" style="background:black;">
<div class="wrap-login100">
<span class="login100-form-logo">
<i class="zmdi zmdi-landscape"></i>
</span>
<span class="login100-form-title p-b-34 p-t-27">
Login
</span>
{% if messages %}
<ul class="red">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% if form %}
<form method="POST" novalidate class="login100-form validate-form">
{% csrf_token %}
{% if form.non_field_errors %}
{% for error in form.non_field_errors %}
<div class="red">
<p>{{error}}</p>
</div>
{% endfor %}
{% endif %}
{% for field in form %}
<div class="wrap-input100 validate-input">
{{field.label_tag}} {{field}}
<span class="focus-input100" data-placeholder=""></span>
{% for error in field.errors %}
<div class="red">
<span>{{error}}</span>
</div>
{% endfor %}
</div>
{% endfor %}
<div class="container-login100-form-btn">
<button class="login100-form-btn" type="submit">
Login
</button>
</div>
<div class="text-center p-t-90">
<a class="txt1" href="#">
Forgot Password?
</a>
</div>
</form>
{% else %}
<p>There is some error, form does not come from view.</p>
{% endif %}
</div>
</div>
Сообщение об ошибке:
