Sommaire

Personnaliser le modèle « USER MODEL » de Django

Le modèle de gestion des utilisateurs utilisé par Django et que l’on trouve dans django.contrib.auth est très pratique puisque l’on peut immédiatement construire un site gérant tous les aspects de base de l’enregistrement et du contrôle des utilisateurs, login, sessions, droits d’accès, etc. Seulement il va arriver un moment où l’on souhaite pouvoir personnaliser ce modèle pour lui ajouter de nouveaux comportements, de nouveaux champs ou même une logique particulière. C’est bien sûr faisable et peut être réalisé de plusieurs façons en fonction du but recherché.

Si l’on souhaite simplement enrichir le modèle User existant, car on en est globalement satisfait et que l’on n’a pas besoin de rajouter des champs, il suffit d’utiliser un modèle proxy, pour cela reportez-vous au chapitre L’ORM et les modèles Django à la section concernant l’héritage, il n’y a aucune difficulté à réaliser cela.

Si l’on souhaite simplement ajouter des champs mais sans créer son propre modèle de gestion des utilisateurs, le plus simple est de relier une « extension », qui est un modèle Django contenant les champs et le comportement spécifiques au modèle User existant par une relation un vers un.

Enfin, si on souhaite aller ...