Outil d'administration Django
Django fournit un outil d'administration basé sur le Web.
L'outil d'administration automatique de Django fait partie de django.contrib. Vous pouvez le voir dans INSTALLED_APPS dans le fichier settings.py de votre projet :
Code du fichier /HelloWorld/HelloWorld/settings.py :
django.contrib est un vaste ensemble de fonctionnalités et fait partie intégrante du code de base de Django.
Activer les outils de gestion
Habituellement, cela est configuré automatiquement dans urls.py lorsque nous générons un projet ; il suffit de supprimer les commentaires.
Les éléments de configuration sont les suivants :
Code du fichier /HelloWorld/HelloWorld/urls.py :
Une fois tout cela configuré, l'outil de gestion Django Admin est prêt à fonctionner.
Utilisez les outils de gestion
Démarrez le serveur de développement, puis visitez http://127.0.0.1:8000/admin/ dans le navigateur, et vous verrez l'interface suivante :
Vous pouvez utiliser la commandepython manage.py createsuperuserpour créer un superutilisateur, comme illustré ci-dessous :
# python manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: [email protected] Password: Password (again): Superuser created successfully. [root@solar HelloWorld]#
Ensuite, saisissez le nom d'utilisateur et le mot de passe pour vous connecter. L'interface est illustrée ci-dessous :
Pour permettre à l'interface d'administration de gérer un modèle de données, nous devons d'abord enregistrer le modèle de données auprès d'admin. Par exemple, nous avons précédemment créé le modèle Test dans TestModel. Modifiez TestModel/admin.py :
HelloWorld/TestModel/admin.py: code du fichier :
Après actualisation, vous pouvez voir la table de données Testmodel :
Modèle complexe
La page d’administration est puissante et tout à fait capable de gérer des modèles de données plus complexes.
Tout d’abord, ajoutez un modèle de données plus complexe dans TestModel/models.py :
HelloWorld/TestModel/models.py : Code du fichier :
Il y a deux tables ici. Tag utilise Contact comme clé étrangère. Un Contact peut correspondre à plusieurs Tags.
Nous pouvons également voir de nombreux types d'attributs que nous n'avons pas vus auparavant, tels que IntegerField pour stocker des entiers.
Enregistrez plusieurs modèles dans TestModel/admin.py et affichez-les :
HelloWorld/TestModel/admin.py: code du fichier :
Actualisez la page d'administration, et les résultats s'affichent comme suit :
Avec l'outil d'administration ci-dessus, nous pouvons effectuer des opérations complexes sur les modèles.
Si vous n'avez pas encore créé la structure de la table, vous pouvez utiliser la commande suivante pour la créer :
$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更 $ python manage.py migrate TestModel # 创建表结构
Formulaire personnalisé
Nous pouvons personnaliser la page d’administration pour remplacer la page par défaut. Par exemple, sur la page « add » ci-dessus, nous voulons afficher uniquement les sections name et email. Modifiez TestModel/admin.py :
HelloWorld/TestModel/admin.py: code du fichier :
Le code ci-dessus définit une classe ContactAdmin pour spécifier le format d’affichage de la page d’administration.
L’attribut fields à l’intérieur définit les champs à afficher.
Comme cette classe correspond au modèle de données Contact, nous devons les enregistrer ensemble. L’effet d’affichage est le suivant :
Nous pouvons également diviser les champs de saisie en sections, et chaque section peut définir son propre format. Modifiez TestModel/admin.py comme suit :
HelloWorld/TestModel/admin.py: code du fichier :
Les champs ci-dessus sont divisés en deux sections : Main et Advance. L'attribut classes spécifie le format CSS de la section à laquelle il appartient. Ici, la section Advance est masquée :
Il y a un bouton Afficher à côté de la section Advance pour la développer. Après l'avoir développée, vous pouvez cliquer sur Masquer pour la masquer, comme le montre la figure ci-dessous :
Affichage en ligne
Dans ce qui précède, Contact est la clé étrangère de Tag, il existe donc une relation de référence étrangère.
Cependant, dans l'affichage par défaut de la page, les deux sont séparés, ce qui ne reflète pas leur relation de subordination. Nous pouvons utiliser l'affichage en ligne pour que Tag soit affiché attaché à la page d'édition de Contact.
Modifiez TestModel/admin.py :
HelloWorld/TestModel/admin.py: code du fichier :
L'effet d'affichage est le suivant :
Affichage de la page de liste
Après avoir saisi plusieurs enregistrements dans Contact, la page de liste de Contact se présente comme suit :
Nous pouvons également personnaliser l'affichage de cette page. Par exemple, pour afficher plus de colonnes dans la liste, ajoutez simplement l'attribut list_display dans ContactAdmin :
HelloWorld/TestModel/admin.py: code du fichier :
Rafraîchissez la page, l'effet d'affichage est le suivant :
La fonction de recherche est très utile lors de la gestion d'un grand nombre d'enregistrements. Nous pouvons utiliser search_fields pour ajouter une barre de recherche à cette page de liste :
HelloWorld/TestModel/admin.py: code du fichier :
Dans cet exemple, nous avons recherché des enregistrements avec le nom example, et les résultats sont comme indiqué ci-dessous :
L'outil de gestion Django Admin dispose également de nombreuses fonctionnalités pratiques. Les étudiants intéressés peuvent l'étudier en profondeur.
autres extensions