Django-Admin-Verwaltungstool
Django bietet ein webbasiertes Admin-Tool.
Djangos automatisches Admin-Tool ist Teil von django.contrib. Sie können es in INSTALLED_APPS in der settings.py Ihres Projekts sehen:
/HelloWorld/HelloWorld/settings.py Datei-Code:
django.contrib ist eine umfangreiche Sammlung von Funktionssets und ein integraler Bestandteil von Djangos Basiscode.
Verwaltungswerkzeuge aktivieren
Normalerweise wird dies in urls.py automatisch konfiguriert, wenn wir ein Projekt generieren; wir müssen nur die Kommentare entfernen.
Die Konfigurationselemente sind wie folgt:
/HelloWorld/HelloWorld/urls.py Datei-Code:
Sobald all dies konfiguriert ist, ist das Django-Admin-Verwaltungstool bereit zur Ausführung.
Verwaltungstools verwenden
Starten Sie den Entwicklungsserver, besuchen Sie dann http://127.0.0.1:8000/admin/ im Browser, und Sie sehen die folgende Oberfläche:
Sie können den Befehlpython manage.py createsuperuserverwenden, um einen Superuser zu erstellen, wie unten gezeigt:
# python manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: [email protected] Password: Password (again): Superuser created successfully. [root@solar HelloWorld]#
Geben Sie dann den Benutzernamen und das Passwort ein, um sich anzumelden. Die Oberfläche ist wie unten gezeigt:
Damit die Admin-Oberfläche ein Datenmodell verwalten kann, müssen wir zuerst das Datenmodell bei Admin registrieren. Zum Beispiel haben wir zuvor das Modell Test in TestModel erstellt. Ändern Sie TestModel/admin.py:
HelloWorld/TestModel/admin.py: Dateicode:
Nach dem Aktualisieren können Sie die Testmodel-Datentabelle sehen:
Komplexes Modell
Die Admin-Seite ist leistungsstark und voll und ganz in der Lage, mit komplexeren Datenmodellen umzugehen.
Fügen Sie zuerst ein komplexeres Datenmodell in TestModel/models.py hinzu:
HelloWorld/TestModel/models.py: Datei-Code:
Hier gibt es zwei Tabellen. Tag verwendet Contact als Fremdschlüssel. Ein Contact kann mehreren Tags entsprechen.
Wir können auch viele Attributtypen sehen, die wir noch nicht gesehen haben, wie IntegerField zum Speichern von Ganzzahlen.
Registrieren Sie mehrere Modelle in TestModel/admin.py und zeigen Sie sie an:
HelloWorld/TestModel/admin.py: Dateicode:
Aktualisieren Sie die Verwaltungsseite, und die Ergebnisse werden wie folgt angezeigt:
Mit dem obigen Admin-Tool können wir komplexe Modelloperationen durchführen.
Wenn Sie die Tabellenstruktur noch nicht erstellt haben, können Sie den folgenden Befehl verwenden, um sie zu erstellen:
$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更 $ python manage.py migrate TestModel # 创建表结构
Benutzerdefiniertes Formular
Wir können die Admin-Seite anpassen, um die Standardseite zu ersetzen. Zum Beispiel möchten wir auf der obigen "add"-Seite nur die Abschnitte Name und E-Mail anzeigen. Ändern Sie TestModel/admin.py:
HelloWorld/TestModel/admin.py: Dateicode:
Der obige Code definiert eine ContactAdmin-Klasse, um das Anzeigeformat der Admin-Seite festzulegen.
Das Attribut fields darin definiert die anzuzeigenden Felder.
Da diese Klasse dem Contact-Datenmodell entspricht, müssen wir sie zusammen registrieren. Die Anzeige sieht wie folgt aus:
Wir können die Eingabefelder auch in Abschnitte unterteilen, und jeder Abschnitt kann sein eigenes Format definieren. Ändern Sie TestModel/admin.py wie folgt:
HelloWorld/TestModel/admin.py: Dateicode:
Die obigen Felder sind in zwei Abschnitte unterteilt: Main und Advance. Das classes-Attribut gibt das CSS-Format des Abschnitts an, zu dem es gehört. Hier ist der Abschnitt Advance ausgeblendet:
Neben dem Abschnitt Advance befindet sich eine Schaltfläche Anzeigen, um ihn zu erweitern. Nach dem Erweitern können Sie auf Ausblenden klicken, um ihn auszublenden, wie in der folgenden Abbildung gezeigt:
Inline-Anzeige
Oben ist Contact der Fremdschlüssel von Tag, es besteht also eine Fremdschlüsselbeziehung.
Bei der standardmäßigen Seitenanzeige sind die beiden jedoch getrennt, wodurch ihre Unterordnung nicht widergespiegelt wird. Wir können die Inline-Anzeige verwenden, damit Tag an die Contact-Bearbeitungsseite angehängt angezeigt wird.
TestModel/admin.py bearbeiten:
HelloWorld/TestModel/admin.py: Dateicode:
Die Anzeige sieht wie folgt aus:
Anzeige der Listenseite
Nachdem mehrere Datensätze in Contact eingegeben wurden, sieht die Listenseite von Contact wie folgt aus:
Wir können auch die Anzeige dieser Seite anpassen. Um beispielsweise mehr Spalten in der Liste anzuzeigen, fügen Sie einfach das Attribut list_display in ContactAdmin hinzu:
HelloWorld/TestModel/admin.py: Dateicode:
Aktualisieren Sie die Seite, die Anzeige sieht wie folgt aus:
Die Suchfunktion ist sehr nützlich, wenn man eine große Anzahl von Datensätzen verwaltet. Wir können search_fields verwenden, um eine Suchleiste zu dieser Listenansicht hinzuzufügen:
HelloWorld/TestModel/admin.py: Dateicode:
In diesem Beispiel haben wir nach Datensätzen mit wechat gesucht, und die Ergebnisse sind wie unten dargestellt:
Das Django Admin bietet viele Funktionen. Interessierte Studenten können es eingehend studieren.
Weitere Erweiterungen