Как использовать is_active в LoginView на основе класса?

Я использую модель User по умолчанию и хочу проверить, активен ли пользователь или нет, прежде чем он войдет в систему... Как я могу это сделать?

Вы можете унаследовать от Django LoginView и затем переопределить функцию form_valid.

class CustomLogin(LoginView):

    def form_valid(self, form):
        username = form.cleaned_data.get('username') #or email or whatever you are using
        try:
            user = User.objects.get(username=username) #or email=email if using email
            if not user.is_active:
                raise("User has been deactivated")
        except User.DoesNotExist:
            pass
        except Exception as e:
            raise(e)
        return super().form_valid(form)
Вернуться на верх