Maison >développement back-end >Tutoriel Python >Comment étendre au mieux le modèle utilisateur Django avec des champs personnalisés ?
Extension du modèle utilisateur Django : approches optimales
Lors de l'extension du modèle utilisateur Django intégré avec des champs personnalisés, deux approches principales se démarquent :
1. Utilisation d'une propriété OneToOneField(User)
Il s'agit de l'approche Django recommandée et implique la création d'un nouveau modèle avec une relation un-à-un avec le modèle User. Ce modèle de « profil » peut stocker des informations supplémentaires sur l'utilisateur.
from django.db import models from django.contrib.auth.models import User class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) # Custom fields here, e.g.: address = models.CharField(max_length=255) phone_number = models.CharField(max_length=15) # ...
2. Remplacement par un modèle utilisateur personnalisé
Cette approche consiste à remplacer entièrement le modèle utilisateur Django par un modèle personnalisé qui inclut les modifications souhaitées. Cependant, cela est considéré comme drastique et est accompagné d'avertissements :
Utilisation du courrier électronique comme nom d'utilisateur
Exemple :
class CustomUser(AbstractUser): def get_username(self): return self.email # ... user = CustomUser.objects.get(username='john@example.com') user.set_username('jack@example.com') user.save()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!