OUJOOD.COM
Être connecté est une chose, avoir le droit d'agir en est une autre. Une fois l'identité de l'utilisateur validée, Django utilise son système d'autorisation pour définir ses limites. C'est ici qu'interviennent les permissions et les groupes, deux outils qui évitent que votre application ne devienne un terrain de jeu sans règles.
Les permissions par défaut
Dès que vous créez un modèle dans votre application, Django génère automatiquement quatre permissions de base : l'ajout, la modification, la suppression et la consultation. Elles sont nommées de manière prévisible : add, change, delete et view.
Je vous conseille de toujours vérifier ces droits avant d'exécuter une action sensible dans vos vues. Voici comment procéder :
def modifier_article(request, id):
if not request.user.has_perm('blog.change_article'):
# L'utilisateur n'a pas le droit de modifier
return HttpResponseForbidden("Accès refusé")
# Suite du traitement...
L'utilité des groupes
Gérer les permissions utilisateur par utilisateur devient vite un calvaire si vous avez des centaines de membres. Les groupes permettent de classer vos utilisateurs par rôle (par exemple : "Rédacteurs", "Modérateurs", "Clients").
Au lieu de donner des droits à Paul, Jacques et Marie individuellement, vous créez un groupe "Rédacteurs", vous lui attribuez les permissions nécessaires, et vous y ajoutez vos membres. C'est plus propre et beaucoup moins sujet aux erreurs humaines.
Vérification dans les templates
Il est inutile d'afficher un bouton "Supprimer" si l'utilisateur n'a pas le droit de cliquer dessus. Django met à disposition l'objet perms directement dans vos templates pour masquer ou afficher des éléments d'interface.
{% if perms.blog.delete_article %}
<button>Supprimer cet article</button>
{% endif %}
Pour aller plus loin dans la personnalisation de l'expérience utilisateur, vous devrez souvent stocker des données spécifiques. C'est ce que nous verrons dans la leçon sur le profil utilisateur Django.
Par carabde | Mis à jour le 08/05/2026