logo oujood
🔍

Gérer le profil utilisateur dans Django

Ajoutez des champs personnalisés comme une biographie ou un avatar à vos membres.

OUJOOD.COM

Le modèle utilisateur de base fourni par Django est efficace, mais il s'arrête au strict minimum : nom, e-mail et mot de passe. Pour un projet réel, vous aurez presque toujours besoin de stocker plus d'infos, comme une photo de profil, une date de naissance ou une biographie. C'est là qu'intervient la notion de profil utilisateur.

La méthode du modèle lié (OneToOne)

Il existe plusieurs façons d'étendre l'utilisateur, mais la plus souple pour débuter est de créer un nouveau modèle Profile. On le lie au modèle User original via une relation OneToOneField. C'est comme si vous ajoutiez une extension à une fiche existante sans toucher à la structure interne de Django.

  📋 Copier le code

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    bio = models.TextField(max_length=500, blank=True)
    avatar = models.ImageField(upload_to='avatars/', null=True, blank=True)

    def __str__(self):
        return f"Profil de {self.user.username}"

Automatiser la création avec les signaux

Je vous déconseille de créer le profil manuellement à chaque inscription. C'est le meilleur moyen d'oublier une étape et de casser votre base de données. Utilisez plutôt les signaux de Django. Ils permettent de dire au système : "Dès qu'un utilisateur est créé, crée-lui automatiquement un profil vide".

C'est une technique propre qui garantit que chaque membre aura toujours son espace de données personnelles prêt à l'emploi.

Accéder aux données dans vos pages

L'avantage de cette méthode est la simplicité d'accès. Grâce à la relation inverse, vous pouvez récupérer les infos du profil directement depuis l'objet utilisateur dans vos templates ou vos vues.

  📋 Copier le code

<h1>Profil de {{ user.username }}</h1>
<p>Ma bio : {{ user.profile.bio }}</p>
<img src="{{ user.profile.avatar.url }}" alt="Photo">

Maintenant que vous savez gérer l'identité de vos membres en profondeur, nous allons voir comment exposer ces données de manière moderne. La prochaine étape concerne l'ouverture de votre application vers l'extérieur avec l'API REST.

Par carabde | Mis à jour le 08/05/2026