Как изменить систему верификации аккаунта 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.