я не понимаю почему я не могу авторизовать юзеров. После регистрации они записываются в БД, но затем при попытке авторизоваться у меня ничего не происходит, банально даже не отображаются ошибки если что-то введено не корректно, после нажатия на кнопку данные просто исчезают и никакого входа, перенаправления (на существующею и уже зарегистрированную страницу в urls нету) . Как тогда поступать? я уже не знаю что именно мне нужно сделать?
views.py
def login_user(request):
if request.method == 'POST':
form = UserLoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return HttpResponseRedirect(reverse('myblog:index'))
else:
form = UserLoginForm()
return render(request, 'users/login.html', {'form': form})
forms.py
class UserLoginForm(AuthenticationForm):
username = forms.CharField(
widget=forms.TextInput(attrs={
'class': 'login__fields__username', 'placeholder': 'Username'
}))
password = forms.CharField(
widget=forms.PasswordInput(attrs={
'class': 'login__fields__password', 'placeholder': 'Password'
}))
class Meta:
model = User
fields = ('username', 'password', )
login.html:
<form action="" method="post">
{% csrf_token %}
{% if form.errors %}
<ul>
{% for field in form %}
{% if field.errors %}
<li>{{ field.label }}: {{ field.errors|join:", " }}</li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
<div class="login">
<div class="login__title">Login for <br>this website</div>
<div class="login__subtitle">If you already have an account, simply log in by entering your details.</div>
<div class="login__fields">
<div class="login__fields__username">
{{ form.username }}
</div>
<div class="login__fields__password">
{{ form.password }}
</div>
</div>
<div class="login__buttons">
<button class="login__btn" type="submit">Login in account</button>
<p class="linktext">You don't have account? <a href="{% url 'users:register_user' %}" class="linktext">Register</a></p>
</div>
</div>
</form>