Страница неактивного аккаунта не работает в django-allauth

Я успешно установил систему аутентификации в приложении django, используя популярный пакет django-allauth. Я приостановил зарегистрированного пользователя, обновив SuspendedUser.is_active=False, но всякий раз, когда я пытаюсь войти в систему как приостановленный пользователь, я получаю сообщение о неудачной аутентификации The username and/or password you specified are not correct.. Нужна ли мне какая-то специальная конфигурация для отображения шаблона account_inactive.html, так как я не могу найти ничего, что упоминало бы об этом в официальной документации?

Примечание: версия django-allauth 0.49.0 и версия django 4.0.3

Вы можете переопределить функцию входа в систему django-allauth. И вы можете создать поле под именами вашей модели пользователя is_suspended вместо того, чтобы давать is_active=False. А в функции login перед login() поместить оператор if.

#in django-allauth login function

if request.user.is_suspended:
    message(request,'You have suspended! Cannot login!')
    return

render(request, 'user/user_policy.html' {'message':message})

или поиск сигналов джанго-аллют

#in User model:

class User(models.Model):
     ...
     ...
     ...
     is_suspended = models.BooleanField(default=False)

Просмотрев свои конфигурации, я понял, что использую пользовательский бэкенд аутентификации в моем settings.py файле. django-allauth требует allauth.account.auth_backends.AuthenticationBackend для обработки аутентификации и разрешений.

Добавление этого в конфигурацию моего проекта решило проблему

AUTHENTICATION_BACKENDS = [
   
    # Needed to login by username in Django admin, regardless of `allauth`
    'django.contrib.auth.backends.ModelBackend',

    # `allauth` specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
   
]

Хотя это было заявлено в docs

Вернуться на верх