[PYTHON] Erwarten Sie nicht zu viel von Djangos Admin-Site

Django Adventskalender 2016 Dies ist der Artikel am 12. Tag.

Einführung

Eine der Funktionen von Django, einem Webframework von Python, ist, dass die Administrationssite göttlich ist.

管理サイトの一覧画面

Der Listenbildschirm und der Registrierungs- / Bearbeitungsbildschirm mit den oben genannten Filtern, Textsuche, Sortierung, Paging usw. können mit nur wenigen Zeilen deklarativen Codes wie unten gezeigt realisiert werden.

python


@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):

    list_display = ('question_text', 'pub_date', 'was_published_recently')

    list_filter = ['pub_date']

    search_fields = ['question_text']

Sie denken, es ist sehr einfach, eine Web-App zu erstellen, aber erwarten Sie nicht zu viel, da die Verwaltungssite verschiedene Einschränkungen aufweist.

Die Verwaltungsseite ist nur begrenzt verwendbar

Zunächst wird die Verwaltungssite als Site für Administratoren konzipiert, wie der Name schon sagt. Der Administrator ist hier eine sogenannte Person mittleren Alters, beispielsweise ein Systemadministrator oder ein Dienstbetreiber.

Die Verwaltungssite bietet für jedes Modell einen Listen- / Registrierungs- / Bearbeitungsbildschirm. Dies ist jedoch eine Funktion für Administratoren und steht allgemeinen Benutzern nicht offen.

Wenn ein allgemeiner Benutzer einen Bildschirm zum Anzeigen / Aktualisieren von Daten benötigt, muss dieser auf einem normalen Bildschirm (im Folgenden als allgemeine Site bezeichnet) anstelle der Verwaltungssite erstellt werden.

Erstellen Sie beispielsweise eine Webanwendung, mit der Sie Artikel anzeigen und registrieren können. Wenn der Dienstbetreiber die Kategorie zur Klassifizierung der Artikel vorregistriert, kann sie auf der Verwaltungssite erstellt werden. Der von allgemeinen Benutzern verwendete Bildschirm zum Anzeigen / Registrieren von Artikeln wird jedoch als allgemeine Website erstellt.

Hier sind einige Beispiele für Anwendungsfälle für jede Site.

Die grundlegende Bildschirmkonfiguration ist festgelegt

Der Hauptbildschirm der Verwaltungssite besteht aus dem Hauptmenü und dem Listen- / Registrierungs- / Bearbeitungsbildschirm jedes Modells.

Das Hauptmenü ist nach der Anwendung gruppiert (die von startapp erstellte) und besteht aus Links zum Modell.

Site_administration___Django_site_admin.png

Sie können dem Modellbildschirm benutzerdefinierte Aktionen (Bildschirme) hinzufügen, die ursprüngliche Bildschirmkonfiguration jedoch nicht wesentlich ändern.

Verwaltungssitefunktionen können nicht in allgemeine Sites integriert werden

Die folgenden praktischen Funktionen sind auf dem Bildschirm mit der Liste der Verwaltungsseiten vorinstalliert.

--Seiten --Sortieren

Diese Funktionen werden mit ziemlicher Sicherheit auch auf regulären Websites benötigt. Leider können die Funktionen der Verwaltungssite nicht auf allgemeine Sites umgeleitet werden. Du musst es selbst machen.

Klassenbasierte Ansichten sind einfach zu implementieren, da sie neben der Funktionalität der Admin-Site auch die Implementierung von Paging-Sortierfiltern unterstützen. Es sind jedoch keine Vorlagen verfügbar, sodass Sie sie selbst schreiben müssen.

Es kann schwierig oder unmöglich sein, mehr als erwartete Anpassungen vorzunehmen

Auf der Admin-Site kann eine einfache Anpassung mit nur einer Codezeile in der Admin-Klasse erreicht werden. Die in der Admin-Klasse verfügbaren Optionen finden Sie hier (https://docs.djangoproject.com/de/1.10/ref/contrib/admin/#modeladmin-options).

Andere als die hier beschriebenen Anpassungen überschreiben die Methoden der Admin-Klasse. Im Vergleich zu den View-Klassen für allgemeine Websites gibt es jedoch viele Teile, die nicht erweitert werden sollen. Es gibt auch monolithische Methoden mit einer beträchtlichen Anzahl von Zeilen und Teilen, die private Funktionen im Modul aufrufen, und in einigen Fällen ist das Überschreiben ziemlich schwierig.

Schließlich

Wie ich viel geschrieben habe, ist die Management-Site ein sehr leistungsfähiges Tool für Administratoren. Es gibt keinen Grund, es nicht zu benutzen.

Die Vorteile der Verwendung von Management-Tools

--Daten können ohne allgemeine Site registriert und angezeigt werden

Und so weiter.

Bitte verstehen Sie die Verwendung und Einschränkungen des Management-Tools und befolgen Sie die Dosierung und die korrekte Verwendung.

Recommended Posts

Erwarten Sie nicht zu viel von Djangos Admin-Site
Eine Geschichte über den Wunsch, die Django-Administrationsseite ein wenig zu ändern