Django LoginView无法验证用户

dy1byipe  于 2022-12-05  发布在  Go
关注(0)|答案(1)|浏览(101)

我有一个LoginView和一个注册表单,这个注册表单工作正常,用户正在飞向数据库,但是LoginView在尝试登录时给出了一个不正确的登录名或密码,虽然所有的数据都是正确的,为什么会这样呢?

来自www.example.com的自定义用户 models.py

class CustomUser(AbstractUser):
    objects = UserManager()

    username = models.CharField(
        unique=True,
        max_length=150,
        error_messages={
            'unique': "Пользователь с таким ником уже есть"},)
    email = models.EmailField(
        'почта',
        unique=True,
        blank=False)
    password = models.CharField(
        'пароль',
        max_length=128)
    first_name = models.CharField(
        'имя',
        max_length=30,
        blank=True)
    second_name = models.CharField(
        'фамилия',
        max_length=30,
        blank=True)
    birthday = models.DateField(
        'день рождения',
        blank=True,
        null=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['username']

    class Meta:
        verbose_name = 'user'
        verbose_name_plural = 'users'

urls.py

path('login/', LoginView.as_view(
        template_name='user/login.html'),
        name='login'),

寄存器

def registrations(request):
    form = RegistrationForm(request.POST or None)
    if request.method == 'POST' and form.is_valid():
        CustomUser.objects.create(**form.cleaned_data).save()
        messages.success(request, 'Вы успешно зарегестрировались')
    context = {
        'form': form,
    }
    return render(request, 'user/reg.html', context)

要使LoginView正常工作,必须

mcvgt66p

mcvgt66p1#

注册后是否检查密码是否正确散列?
如果您不使用django.contrib.auth中的表单,则需要手动创建和验证密码:
请参阅

相关问题