Retour sur le superuser
Bonsoir,
Suite à ma question d'hier, là je vais vraiment isoler le code qui m'intéresse :
class CustomUserManager(BaseUserManager):
# kwargs si prénom nom de famille etc...
def create_user(self, email, password, **kwargs):
if not email:
raise ValueError("Vous devez renseigner un email")
user = self.model(email=self.normalize_email(email), **kwargs)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password, **kwargs):
kwargs['is_staff'] = True
kwargs['is_superuser'] = True
kwargs['is_active'] = True
return self.create_user(email=email, password=password, **kwargs)
Dans la méthode create_superuser, (tient on va parler de kwargs ^^) :
is_staff is super_user et is_active ne sont pas retournés à la fin de la méthode create_superuser ?
A la fin de cette méthode on retourne create_user ?
ça veut dire qu'on va modifier les valeurs de ces 3 arguments mais on ne va pas les retourner ?
Merci
Bonjour,
Effectivement, dans la méthode create_superuser, les valeurs de is_staff, is_superuser et is_active sont modifiées en ajoutant les nouvelles valeurs à l'aide de la variable kwargs, mais elles ne sont pas retournées explicitement à la fin de la méthode.
Cependant, ces valeurs sont utilisées dans la méthode create_user, appelée à la fin de create_superuser. Dans cette méthode, ces valeurs sont passées à la création de l'objet user en tant qu'arguments nommés (**kwargs), ce qui signifie qu'elles seront incluses automatiquement dans l'objet user créé.
Donc, bien que ces valeurs ne soient pas retournées explicitement dans create_superuser, elles seront incluses dans l'objet user créé par la méthode create_user, qui est finalement retourné par create_superuser.
J'espère que cela clarifie les choses. N'hésitez pas à me demander des éclaircissements si nécessaire.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte