Le générateur de documentation de l’administration de Django¶
L’application admindocs
de Django récupère la documentation depuis les chaînes de documentation « docstrings » des modèles, des vues, des balises de gabarit et des filtres de gabarit de toutes les applications figurant dans INSTALLED_APPS
et rend cette documentation disponible à partir de l'administration de Django
.
Aperçu¶
Pour activer admindocs
, voici ce qu’il faut faire :
- Ajoutez
admindocs
au réglageINSTALLED_APPS
. - Ajoutez
path('admin/doc/', include('django.contrib.admindocs.urls'))
aux motifs d’URLurlpatterns
. Assurez-vous que cette inclusion apparaisse avant la ligne'admin/'
, de sorte que les requêtes vers/admin/doc/
ne soient pas interceptées par cette dernière. - Installez le module Python docutils (https://docutils.sourceforge.io/).
- Facultatif : l’utilisation des signets dynamiques d’admindocs nécessite que
django.contrib.admindocs.middleware.XViewMiddleware
soit installé.
Une fois ces étapes terminées, vous pouvez parcourir la documentation en allant sur l’interface d’administration et en cliquant sur le lien « Documentation » dans le coin supérieur droit de la page.
Assistants de documentation¶
Le balisage spécial suivant peut être utilisé dans vos chaînes de documentation « docstrings » afin de créer facilement des liens vers d’autres composants :
Composant Django | Rôles reStructuredText |
---|---|
Modèles | :model:`étiquette_app.NomModèle` |
Vues | :view:`étiquette_app.nom_de_vue` |
Balises de gabarit | :tag:`nom_balise` |
Filtres de gabarit | :filter:`nom_filtre` |
Gabarits | :template:`chemin/vers/gabarit.html` |
Référence des modèles¶
La section modèles de la page d”admindocs
décrit chaque modèle du système avec tous les champs, propriétés et méthodes disponibles. Les relations avec les autres modèles apparaissent sous forme d’hyperliens. Les descriptions sont récupérées des attributs help_text
pour les champs ou des chaîne de documentation « docstrings » pour les méthodes de modèle.
Les versions précédentes n’affichaient pas les propriétés des modèles mises en cache.
Un modèle avec une documentation utile pourrait ressembler à ceci :
class BlogEntry(models.Model):
"""
Stores a single blog entry, related to :model:`blog.Blog` and
:model:`auth.User`.
"""
slug = models.SlugField(help_text="A short label, generally used in URLs.")
author = models.ForeignKey(
User,
models.SET_NULL,
blank=True, null=True,
)
blog = models.ForeignKey(Blog, models.CASCADE)
...
def publish(self):
"""Makes the blog entry live on the site."""
...
Référence des vues¶
Chaque URL de votre site possède une entrée séparée dans les pages admindocs
; un clic sur une URL donnée montre la vue correspondante. Voici quelques exemples de choses utiles que vous pouvez documenter dans les chaînes de documentation « docstrings » de vos fonctions de vue :
- Une brève description de ce que la vue réalise.
- Le contexte ou une liste de variables disponibles dans le gabarit de la vue.
- Le nom du ou des gabarits utilisés pour cette vue.
Par exemple :
from django.shortcuts import render
from myapp.models import MyModel
def my_view(request, slug):
"""
Display an individual :model:`myapp.MyModel`.
**Context**
``mymodel``
An instance of :model:`myapp.MyModel`.
**Template:**
:template:`myapp/my_template.html`
"""
context = {'mymodel': MyModel.objects.get(slug=slug)}
return render(request, 'myapp/my_template.html', context)
Référence des balises et filtres de gabarit¶
Les sections balises et filtres d”admindocs
décrivent toutes les balises et les filtres livrés avec Django (en fait, la documentation de référence des balises intégrées et des filtres intégrés proviennent directement de ces pages). Toutes les balises ou les filtres que vous créez ou qui sont ajoutés par une application tierce apparaîtront aussi dans ces sections.
Référence des gabarits¶
Bien qu”admindocs
n’offre aucun moyen de documenter les gabarits eux-mêmes, si vous utilisez la syntaxe :template:`chemin/vers/gabarit.html`
dans une chaîne « docstring », la page résultante vérifiera le chemin de ce gabarit avec le moteur de chargement des gabarits de Django. Cela peut être un moyen pratique pour vérifier si le gabarit existe et de montrer où ce gabarit est stocké dans le système de fichiers.
Signets dynamiques inclus¶
Un signet dynamique est disponible depuis la page admindocs
:
- Documentation pour cette page
- Vous renvoie depuis n’importe quelle page vers la documentation de la vue qui génère cette page.
L’utilisation de ce signet dynamique nécessite que XViewMiddleware
soit installé et que vous soyez connecté à l'administration de Django
en tant que User
avec is_staff
contenant True
.