Django : construire un BaseModel réellement utile
Dans une application Django, plusieurs modèles peuvent partager les mêmes informations :
• un identifiant unique
• une date de création
• une date de modification
• l’utilisateur ayant créé l’objet
• l’utilisateur ayant effectué la dernière modification
Au lieu de déclarer ces champs dans chaque modèle, on peut créer un modèle abstrait BaseModel.
Par exemple :
class BaseModel(models.Model):
id = models.UUIDField(
primary_key=True,
default=uuid.uuid4,
editable=False,
)
created_at = models.DateTimeField(
auto_now_add=True,
db_index=True,
)
updated_at = models.DateTimeField(
auto_now=True,
db_index=True,
)
class Meta:
abstract = True
Puis un modèle métier peut simplement hériter de BaseModel :
class Patient(BaseModel):
name = models.CharField(max_length=150)
Grâce à :
class Meta:
abstract = True
Django ne crée pas de table dédiée à BaseModel. Les champs du modèle abstrait sont ajoutés aux modèles qui en héritent.
Pourquoi utiliser un BaseModel ?
→ Éviter la répétition de code
→ Centraliser les champs communs
→ Garder les modèles métier plus lisibles
→ Standardiser certaines informations dans l’application
→ Simplifier la maintenance du code
On peut également y ajouter des informations de traçabilité comme created_by et updated_by lorsque le besoin existe.
⚠️ Attention : un BaseModel doit rester simple. Il ne faut pas y placer des champs uniquement parce qu’ils pourraient être utiles un jour. Les éléments doivent réellement être communs aux modèles qui en héritent.
💡 À retenir :
BaseModel n’est pas obligatoire dans Django. C’est un outil d’organisation du code particulièrement intéressant lorsque plusieurs modèles partagent les mêmes propriétés.
Vous utilisez un BaseModel dans vos applications Django ?
Django BaseModel : éviter la duplication dans vos modèles
Django : construire un BaseModel réellement utile Dans une application Django, plusieurs modèles peuvent partager les mêmes informations : • un identifiant unique • une date de création • une …
TCHONGWANG
5 Septembre 2026
Commentaires (0)
Connectez-vous à votre compte pour commenterAucun commentaire pour le moment. Soyez le premier à commenter !
Check-in