2009-03-24 13 views
13

Ich dachte, dass django admin ein Dienstprogramm ist, um vertrauenswürdigen Administratoren der Website vollen Zugriff auf das Datenmodell der Website zu ermöglichen.Erstellen einer gesamten Webanwendung mit django admin

Allerdings, nachdem ich django admin im Detail durchgelaufen bin, verstehe ich, dass es sehr leistungsfähige Reihe von Ansichten und Vorlagen, die man verwenden kann, um eine ganze Anwendung zu erstellen.

Wie oft erstellen Sie eine ganze Anwendung mit admin allein? Ist es einfacher, selbst Ansichten zu erstellen, als den Admin so anzupassen?

Wie baut man den Prototyp mit admin. Müssen wir überhaupt Prototypen bauen? Die Admin-Anpassung kann nicht in der realen Anwendung wiederverwendet werden.

Wenn ich einen Teil des Admin-Codes in der realen Anwendung (mit verschiedenen Vorlagen) verwenden möchte, gibt es eine Art Gerüstoption?

+0

Wie kann ich Django Admin Ansichten und Vorlagen in meiner Anwendung verwenden? –

Antwort

17

"Der Admin ist nicht Ihre App."

Wenn die Anpassung über das Triviale hinausgeht, schreiben Sie Ihre eigenen Ansichten.

Nach meiner Erfahrung lasse ich die internen Admin-Seiten relativ unberührt.Stattdessen überschreibe ich die Admin-Indexvorlage, in der ich Links zu benutzerdefinierten Ansichten einfüge, wenn der Benutzer nichttriviale Berichterstellung oder Formularbehandlung durchführen muss.

0

Kurz:

Versuchen Sie das Admin-Teil für Ihre Bedürfnisse aus. Ändern Sie die Standardansichten. Wenn etwas fehlt, können Sie immer Ihre eigene Ansicht entwickeln.

Für mich kann ich mir keine ganze (größer als Rolodex) Anwendung vorstellen, die nur auf django-admin basiert.

A.

9

Ich habe so etwas schon einmal gemacht. Es war ein CMS für eine Universität, das komplett durch die Erweiterung von Django Admin implementiert wurde. Es stellte sich heraus, dass es eine schlechte Designentscheidung war. Ich musste durch Reifen springen, um einige Dinge zu tun.

Es hängt wirklich davon ab, welche Anforderungen an Ihre Anwendung gestellt werden. Wenn viel Ajax oder ein spezieller Workflow benötigt wird, ist der Admin nicht das Richtige. Aber ich denke, 60% der Fälle können durch die Erweiterung des Administrators abgedeckt werden.

Es ist auch hervorragend für den Bau von Prototypen.

EDIT

OK, das war in den 0,96 Tage.

Bis jetzt habe ich 2 "große" Seiten gebaut, die komplett auf dem neuen Admin in Produktion sind. Dies sind hauptsächlich Fallmanagement, Dateneingabe und Reporting, so dass sie in den Workflow des Administrators gepresst werden können. Aber nicht ohne große Anstrengungen, die Basis-Site, ModelAdmin, InlineModelAdmin usw. zu erweitern. Die Entscheidung, diesen Weg zu gehen, wurde uns aufgezwungen, es schnell zu tun. Aber im ersten Fall passte es auch perfekt zu den Anforderungen. Beide laufen in einem Intranet im Regierungssektor. Beide machen ihren Job gut. Eines mit 200 Tabellen, die Zehntausende von Einträgen verwalten. Der andere verwaltet Zahlungen.

Also, ja, es ist wahr. Der Admin ist nicht deine App. Es ist jedoch erweiterbar genug, obwohl vieles davon nicht dokumentiert ist. Und es passt in die meisten grundlegenden Enterprise-Workflows. Daher ist es in einer begrenzten Anzahl von Szenarien eine Überlegung wert.

3

Der Django Admin ist unglaublich flexibel und kann auf verschiedene Arten außer Kraft gesetzt werden. Leider gibt es mehr als eine Möglichkeit, das Overriding durchzuführen, und einige der Techniken sind nicht besonders gut dokumentiert. Die gute Nachricht ist, dass die folgende Strategie gut zu funktionieren scheint: Überschreiben, anpassen und Unterklasse der Admin-App, bis alles anfängt sich ein wenig schmerzhaft zu fühlen und zu diesem Zeitpunkt einfach in Ihre eigenen Ansichten fallen, wo benötigt.

Es gibt einige nützliche Links in meiner Antwort auf this question

6

Ich bin nicht einverstanden mit den meisten anderen Antworten.

Einfach gesagt, gibt es keine Übereinstimmung für das, was Sie kostenlos mit der Admin-App erhalten.

Ihre erste Anpassung des Administrators wird schwierig, da Sie mit einer steilen Lernkurve konfrontiert werden (Sie müssen sich mit übergeordneten Vorlagen, Managern, ModelAdmins, Datenbankansichten, CSS und JS, einigen zusätzlichen Formularen beschäftigen und Validierungsregeln, etc ...). Aber sobald das erledigt ist, werden Sie sich als König fühlen, wenn Sie das Admin-System an Ihre Bedürfnisse anpassen. Ich habe eine komplexe Inventur- und Buchhaltungs-Webanwendung mit Dateneingabe-, Berichterstattungs- und Berechtigungssystem erstellt, die alle nur auf der Verwaltungsschnittstelle und dem Back-End basieren.

+0

ein Repository für einige Beispiele vorschlagen? –