L'administration est configurée automatiquement quand on utilise la commande django-admin startproject monsupersite
pour démarrer un projet Django.
Dans le fichier monsupersite/urls.py
, on trouve la route pour accéder à la partie administation
... urlpatterns = [ path('admin/', admin.site.urls), ...
Si on se rend à l'adresse 127.0.0.1:8000/admin
, on doit s'identifier…
$ python manage.py createsuperuser
et répondre aux questions…
Vous pouvez maintenant vous connecter avec les identifiants que vous venez de choisir
Afin d'utiliser les modèles de nos applications, il faut les déclarer dans le fichier admin.py
de chaque application.
Exemple pour ajouter les modèles Category
et Article
.
from django.contrib import admin # Register your models here. from .models import Category, Article admin.site.register(Category) admin.site.register(Article)
Définir list_display pour contrôler quels champs sont affichés sur la page de liste pour modification de l’interface d’administration.
Exemple pour afficher le titre et la description d'une catégorie
... class CategoryAdmin(admin.ModelAdmin): list_display = ('title', 'description') admin.site.register(Category, CategoryAdmin) ...
Si list_display
n'est pas défini, le site affichera une seule colonne avec la représentation __str__()
de chaque objet.
Cette méthode peut être défini dans les modèles.
Exemple fichier models.py :
... class Category(models.Model): title = models.CharField(max_length=255) description = models.TextField(blank=True) def __str__(self): return '%s => %s' % (self.title, self.description)
Il est également possible d'utiliser __str__
dans list_display
... class CategoryAdmin(admin.ModelAdmin): list_display = ('__str__', 'description') ...