Как изменить систему верификации аккаунта djoser

Вот моя пользовательская модель пользователя:

class Account(AbstractBaseUser):

    email = models.EmailField(unique=True, max_length=255)
    firstname = models.CharField(max_length=40)
    lastname = models.CharField(max_length=40)
    date_joined = models.DateTimeField(auto_now_add=True)
    is_active = models.BooleanField(default=True)
    is_verif = models.BooleanField(default=)
    is_superuser = models.BooleanField(default=False)

    USERNAME_FIELD = "email"
    REQUIRED_FIELDS = ["firstname", "lastname"]

    objects = AccountManager()

    def __str__(self):

        return self.email
    
    @property
    def is_staff(self):

        return self.is_superuser

    @property
    def is_admin(self):
        
        return self.is_superuser


    def has_perm(*args, **kwargs):

        return True

    def has_module_perms(*args, **kwargs):

        return True

Итак, сейчас у меня стандартная система верификации аккаунта djoser. Поэтому я не могу войти в систему с непроверенным пользователем, потому что поле is_active установлено в False.

Где и как мне изменить код, чтобы каждый раз при верификации аккаунта проверялось поле is_verif, а не is_active и поле is_active всегда было установлено в True ?

Спасибо

Вы можете заменить поле is_active на метод с именем is_active с декоратором @property и внутри этого метода вернуть значение is_verif.

@property
def is_active(self):
   return self.is_verif

Но это решение работает только в том случае, если вам не нужно поле is_active.

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