.. _admin_docs:
Die Admin Doku einrichten
***************************
Die Admindocs-App von Django ruft die Dokumentation aus den Docstrings von Models, Views, Template-Tags und filtern für jede App in INSTALLED_APPS ab und stellt diese Dokumentation über den Django-Administrator zur Verfügung.
Einrichten der Admin Dokumentation
=====================================
Installieren von ``docutils``
------------------------------
Um den Code rendern zu können, benötigt die Admindocs-App das Tool docutils. Es kann einfach installiert werden:
.. code-block:: bash
pip install docutils
.. admonition:: Docutils
Docutils ist ein Open-Source-Textverarbeitungssystem zur Verarbeitung von Textdokumentation in nützliche Formate wie HTML, LaTeX, Manpages, OpenDocument oder XML. Es enthält reStructuredText, die einfach zu lesende, einfach zu verwendende Markup-Sprache.
Mehr zu Docutils hier: ``_
Installed Apps
--------------------
Hinzufügen zu den ``INSTALLED_APPS`` in den ``settings.base.py```
.. code-block:: python
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"django.contrib.admindocs", # hier hinzufügen
"crispy_forms",
]
Urls
------
in den ``urlpatterns`` des Projekts unter ``event_manager/urls.py``
.. code-block:: python
urlpatters = [
# andere Einträge
path("admin/doc/", include("django.contrib.admindocs.urls")),
]
Mehr Infos: ``_
Dann die URL ``http://127.0.0.1:8000/admin/doc/`` besuchen und staunen!
Code pimpen
=====================================
Mit einfachen Mitteln lässt sich Code mit Meta-Angaben versehen, der in der Admin Doc gerendet wird.
dazu öffnen wir die Datei ``event_manager/events/models.py`` und ändern den DocString des Models ``Event wie folgt ab``.
.. code-block:: python
class Event(DateMixin):
"""Stores a single blog entry, related to :model:`events.Category` and
:model:`user.User`."""
class Group(models.IntegerChoices):
BIG = 20
SMALL = 5
MEDIUM = 10
Wir öffnen ebenfalls die Datei ``event_manager/events/views.py`` und ändern den Docstring der ``EventCreateView`` ab:
.. code-block:: python
class EventCreateView(LoginRequiredMixin, CreateView):
"""
create an event :model:`events.Event`.
events/event/create/3
**Template:**
:template:`events/event_form.html`
"""