Не авторизует пользователя в джанго
Я создал две пользовательские формы на основе UserCreationForm и AuthenticationForm. После регистрации пользователя я хочу сразу его авторизовать, и мне это удалось. Но когда я просто хочу войти в систему, появляется ошибка {'invalid_login': 'Пожалуйста, введите правильный %(имя пользователя) и пароль. Обратите внимание, что оба поля могут быть чувствительны к регистру.', 'inactive': 'Эта учетная запись неактивна.'}, даже если все введенные данные верны.
models.py
class User(AbstractUser):
profile_image = models.ImageField(upload_to='accounts/images', default='default/user.jpg', blank=True, null=True)
address = models.CharField(max_length=130, null=True, blank=True)
date_of_birth = models.DateField(null=True, blank=True)
def __str__(self) -> str:
return f"{self.username}, {self.email}"
forms.py
class LoginForm(AuthenticationForm):
class Meta:
model = User
fields = ['username', 'password']
labels = {
'username': "Username",
'password': 'Password'
}
views.py
class LoginView(View):
def get(self, request):
form = LoginForm()
return render(request, 'accounts/login.html', {'form': form})
def post(self, request):
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
print(f"User {username} login successfully.")
return redirect('blog:index')
print(f"Form errors: {form.error_messages}")
return render(request, 'accounts/login.html', {'form': form})
template login.html
{% extends 'base.html' %}
{% block title %}
Login user
{% endblock %}
{% block content %}
<div>
<form action="" method="post">
{% csrf_token %}
{{ form }}
<br>
<button type="submit">Log in</button>
</form>
</div>
{% endblock %}