Вход, регистрация на одной странице django (аутентификация в нескольких формах)? Я могу зарегистрироваться ... Почему в meassage при входе в систему показывается недействительный мандат

***

VEIWS.PY Это views.py Я могу войти в систему, но не могу войти, он показывает недействительные учетные данные

.

`def login_user(request): if request.method=='POST':

`

показывает недействительные учетные данные

Потому что ваш authenticate() возвращает None

authenticate() по умолчанию принимает имя пользователя и пароль для аутентификации, а вы предоставляете email и пароль для аутентификации. Если вы хотите аутентифицироваться по электронной почте и паролю, напишите свой собственный бэкенд аутентификации.

from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend

class CustomEmailBackend(ModelBackend):
    def authenticate(self, request, email=None, password=None, **kwargs):
        UserModel = get_user_model()
        try:
            user = UserModel.objects.get(email=email)
        except UserModel.DoesNotExist:
            return None
        else:
            if user.check_password(password):
                return user
        return None

После этого укажите вашу пользовательскую аутентификацию в settings.py

AUTHENTICATION_BACKENDS = ['path.to.CustomEmailBackend']

Также сделайте свой email заполненным unique=True

По умолчанию аутентификация осуществляется по полю username в модели пользователя auth, вам нужно установить поле username_field в поле email в модели пользователя auth.Ваша модель пользователя auth должна выглядеть следующим образом

class User(AbstractBaseUser,PermissionsMixin):
    **fields**
    USERNAME_FIELD = 'email'
Вернуться на верх