Django LoginView не регистрирует пользователя в системе
У меня есть приложение, которое просто предназначено для аутентификации пользователя с помощью общих представлений аутентификации Django. Проблема в том, что я не могу войти в систему даже с правильным именем пользователя и паролем. Я постоянно получаю ошибку неправильного имени пользователя или пароля. Имя и пароль всегда простые, например, "email@email.com" и "123" в качестве пароля, так что я никак не могу напутать с написанием. Я использую встроенный в Django LoginView, пользовательскую модель User и пользовательскую AuthenticationForm.
Я уже делал этот проект раньше практически таким же образом без проблем, но я не могу найти разницу между этим проектом и моим старым проектом. Вот мой код. Спасибо за ваше время.
Виды
from .models import MyUser
from .forms import MyUserLogin
class Login(LoginView):
template_name='loginapp/login.html'
authentication_form=MyUserLogin
success_url='/loginapp/home
models.py
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
class MyUser(AbstractBaseUser):
fname=models.CharField(max_length=30)
lname=models.CharField(max_length=30)
email=models.EmailField(max_length=100, unique=True)
phone=models.CharField(max_length=12)
password=models.CharField(max_length=200)
USERNAME_FIELD='email'
forms.py
from django.forms import ModelForm
from django.contrib.auth.forms import AuthenticationForm
from django.forms.widgets import TextInput
from .models import MyUser
class MyUserLogin(AuthenticationForm):
class Meta:
model=MyUser
fields=['email', 'password']
...
login.html
...
<div>
<form method='post'>
{% csrf_token %}
<ul>
<li><p>Email</p></li>
<li>{{form.username}}</li><br>
<!-- using "Email" as the label instead of "Username" -->
<li>{{form.password.label}}</li>
<li>{{form.password}}</li>
</ul>
<input type='submit' name='submit' class='submit' value='Submit'>
</form><br>
<p>Don't have an account? <a href="{% url 'signup' %}">Sign up</a></p>
{% if form.errors %}
<p>Your username or password were incorrect.</p>
{% endif %}
</div>
...