Django allauth возвращает страницу Account Inactive после входа в систему

Я новичок в программировании и не совсем понимаю, как работает allauth и что именно нужно делать.

У меня есть приложение, в котором пользователь неактивен после регистрации, и он должен нажать на письмо с подтверждением, чтобы стать активным.

Я попытался настроить allauth так, чтобы пользователь мог также войти в систему с помощью google, но когда новый пользователь входит в систему, он перенаправляется на страницу с надписью Account Inactive. В админке я вижу, что он создает аккаунт (неактивный), а также запись в социальных аккаунтах, но он не генерирует токен социального приложения.

С другой стороны, когда пользователь, у которого уже есть аккаунт, пытается войти с помощью google, он перенаправляется на страницу регистрации Allauth.

Так что я не понимаю, как работает активация с allauth. Я что-то не так сделал в своей конфигурации allauth? Мне нужно отредактировать функцию входа или что-то еще?

Посмотрите на класс DefaultAdapter. Там есть метод pre_login, который проверяет, не является ли ваш пользователь неактивным, и если да, то сразу же перенаправляет его на url account_inactive.

    def pre_login(
    self,
    request,
    user,
    *,
    email_verification,
    signal_kwargs,
    email,
    signup,
    redirect_url
):
    from .utils import has_verified_email, send_email_confirmation

    if not user.is_active:
        return self.respond_user_inactive(request, user)
....

def respond_user_inactive(self, request, user):
    return HttpResponseRedirect(reverse("account_inactive"))
Вернуться на верх