logo oujood
🔍

Inscription d'un utilisateur avec Django

Permettez à vos visiteurs de créer un compte en utilisant les outils natifs de Django.

OUJOOD.COM

Après avoir compris comment fonctionne le système d'authentification, l'étape logique est de permettre à vos visiteurs de s'enregistrer. Django facilite énormément cette tâche grâce à un formulaire intégré nommé UserCreationForm.

Utiliser le formulaire UserCreationForm

Pas besoin de définir chaque champ (nom, mot de passe, confirmation). Django s'en occupe pour vous. Ce formulaire gère même la validation : il vérifie si le nom d'utilisateur existe déjà et si les deux mots de passe saisis sont identiques.

Voici comment configurer une vue simple pour traiter l'inscription :

  📋 Copier le code

from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render, redirect

def inscription(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save() # L'utilisateur est créé en base de données
            return redirect('login')
    else:
        form = UserCreationForm()
    return render(request, 'inscription.html', {'form': form})

Affichage dans le template

Côté HTML, c'est très sobre. N'oubliez pas d'inclure la protection contre le vol de session que nous avons vue précédemment. Si vous avez un doute, relisez la page sur la protection CSRF Django.

  📋 Copier le code

<h2>Créer un compte</h2>
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">S'inscrire</button>
</form>

Aller plus loin

Le formulaire par défaut est pratique mais un peu limité (il ne demande pas l'e-mail par exemple). Je vous conseille, une fois à l'aise, de créer votre propre classe en héritant de UserCreationForm pour ajouter les champs dont vous avez réellement besoin pour votre projet.

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