• 20 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 12/12/19

Créez une interface d'administration privée

Log in or subscribe for free to enjoy all this course has to offer!

Le site est créé ! Il correspond aux attentes du disquaire et vous allez bientôt pouvoir lui présenter. Mais il est très pénible de gérer le contenu dans la console. Le disquaire ne va pas se connecter en SSH pour regarder l'état de ses réservations ! Il a besoin d'une interface d'administration.

Django est renommé notamment pour son interface d'administration incluse par défaut. Rien à installer, il suffit de l'activer ! Dans cette partie vous découvrirez comment la configurer pour créer l'interface idéale.

Activation de l'interface d'administration

Configuration

L'interface est activée par défaut lorsque vous démarrez un projet avec la commande manage.py startproject. Regardez dans le fichier settings.py :

INSTALLED_APPS = [
    # ...
    'django.contrib.admin',
    # ...
]

Une route a également été ajoutée dans les URLs du projet :

disquaire_project/urls.py

from django.contrib import admin
urlpatterns = [
    # ...,
    url(r'^admin/', admin.site.urls)
]

Vous n'avez donc qu'à indiquer comment l'utiliser ! Mais avant, modifiez-la. Pour des raisons de sécurité, il est indispensable de changer l'URL car les pirates la connaissent !

settings.py

MIDDLEWARE = [
    # ...
    'django.middleware.locale.LocaleMiddleware',
]

Lancez le serveur et naviguez à l'adresse http://127.0.0.1:8000/admin. Une page de connexion s'affiche ! L'interface est donc bien activée mais vous devez disposer d'un compte pour accéder aux données.

Créer un administrateur

C'est très simple ! Arrêtez le serveur et tapez la commande manage.py createsuperuser.

>>> ./manage.py createsuperuser
Username (leave blank to use 'celinems'):
Email address: monadresse@gmail.com
Password:
Password (again):
Superuser created successfully.

A présent relancez le serveur et connectez-vous à l'interface d'administration.

Vous pouvez ajouter autant de nouveaux collaborateurs que vous le souhaitez en cliquant sur "Utilisateurs". Chacun possède sa propre page permettant de modifier ses coordonnées.

Il est également possible de restreindre les pouvoirs de certains utilisateurs en ne leur accordant pas toutes les permissions ! Par défaut, l'utilisateur que vous avez créé a tous les pouvoirs : c'est un "super utilisateur". Mais tout nouvel utilisateur créé est lecteur uniquement. Il ne peut pas modifier des éléments dans la base de données.

Afin de lui permettre de le faire, vous devez ajouter des autorisations supplémentaires.

Imaginons que le disquaire invite son petit neveu dans le magasin pour l'aider un peu. Le neveu ne doit pas pouvoir supprimer les réservations ! Mais il doit pouvoir en ajouter. Vous pouvez alors sélectionner la permission "store | booking | Can add booking".

C'est bien joli d'avoir les pleins pouvoirs mais pour l'instant vous ne pouvez rien faire d'autre ! Pourtant la base de données est bien remplie, pourquoi ne s'affichent-elles pas ? C'est normal, vous devez indiquer à Django quels modèles doivent figurer dans l'administration.

Affichage des données d'une table dans l'administration

Par convention, les réglages de l'interface d'administration figurent dans le fichier admin.py (qui a également été créé automatiquement).

admin.py

from django.contrib import admin

# Register your models here.

Faire apparaître les données d'une table dans l'interface d'administration est extrêmement simple. Importez simplement le modèle lié à la table et utilisez la méthode register :

admin.py

from django.contrib import admin

from .models import Booking


admin.site.register(Booking)

Retournez sur l'interface : les réservations apparaissent !

Prenez quelques minutes pour naviguer dans l'interface d'administration. Découvrez comment afficher la liste des réservations, en supprimer, en créer, et comment indiquer que l'une d'elles a été traitée.

Dans le chapitre suivant vous découvrirez comment ajouter les autres modèles ! A tout de suite !

Code de ce chapitre

Retrouvez l'intégralité du code sur ce dépôt GitHub.

Example of certificate of achievement
Example of certificate of achievement