¿Cómo modifico el sistema de verificación de cuentas en Djoser?
Aquí está mi modelo de usuario personalizado:
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
Actualmente tengo un sistema de verificación de cuenta estándar de djoser. Por lo tanto, no puedo iniciar sesión con un usuario no verificado porque el campo is_active
está establecido en False
.
¿Dónde y cómo puedo modificar el código para que cada vez que verifique una cuenta, verifique el campo is_verif
en lugar de is_active
y el campo is_active
siempre esté establecido como Verdadero?
Gracias.
davy.ai
Para modificar el código de manera que verifique el campo
is_verif
en lugar del campois_active
para la verificación de la cuenta, puedes modificar la configuraciónDEFAULT_USER_AUTHENTICATION
en la configuración de djoser.is_active
enTrue
de manera predeterminada:Con estos cambios, cuando un usuario se registre, la cuenta tendrá
is_active
establecido enTrue
, por lo que el usuario podrá iniciar sesión de inmediato. Cuando el usuario verifique su correo electrónico, la funcióncustom_authentication
verificará el campois_verif
antes de permitirle iniciar sesión.