2010-11-24 8 views
0

Hat jemand eine eigene AdminSite implementiert? Wie einfach/schwer war die grundlegende Implementierung?Django AdminSite - Schwierige oder einfache Implementierung?

Ich bin gerade dabei, ein "cms" zu erstellen, das in einigen Bereichen ziemlich groß und anständig komplex sein wird und ich frage mich, ob etwas wie AdminSite etwas Zeit sparen würde. Ich würde eher nicht meine eigene Implementierung für Admin-Aktionen und Inlines und ähnliches machen müssen (ich weiß, dass ich nur Inline-Formulare verwenden kann, aber das ist nicht so einfach wie inlines = [Foo]).

Wenn eine benutzerdefinierte AdminSite verwendet wird, entspricht die weitere Anpassung der Anpassung des standardmäßigen Django-Administrators?

+2

"Ich frage mich, ob etwas wie AdminSite etwas Zeit sparen würde"? Es spart Berge von Zeit. Vielleicht fragen Sie das wirklich nicht. Vielleicht möchten Sie Ihre Frage klären. –

Antwort

1

Sie haben die admin site Dokumente gelesen. Es ist ein langwieriges Dokument, aber zwei Haupt-Hooks zum Hinzufügen benutzerdefinierter Funktionen sind benutzerdefinierte URLs und modifizierte Standardansichten in Ihren eigenen Objekten AdminSite und ModelAdmin. Sobald Sie diese einbinden und die URLs zugeordnet werden, ist es wie beim Erstellen einer anderen Django-Anwendung, nur dass die Templates nicht Ihre sind, also sind sie ein bisschen schwer zu verwalten und gewöhnungsbedürftig. Aber es kann Ihnen zusätzliche Gymnastik tun, wie ein form wizard an der Admin-Seite hinzugefügt oder Aufspaltung alles in mehrere Formen und wodurch sie in einem einzigen HTML form Elemente in den Vorlagen machen individuelle Handhabung von GET/POST Anfragen usw.

Ich habe es in der Vergangenheit verwendet, um Ansichten zum Anzeigen benutzerdefinierter Berichte zu erstellen und benutzerdefinierte Bearbeitungsszenarien für die Mitarbeiter zu erstellen. Meiner Meinung nach sollten Sie so viel wie möglich KISSEN. Auf der Admin-Site dreht sich alles um generische Ansichten und generische Präsentationen. Expandieren Sie, aber seien Sie vorsichtig, wenn Sie Template-Blöcke überschreiben, und überlegen Sie zweimal, bevor Sie etwas überschreiben, das nicht in einem Block eingeschlossen ist. Bestimmte Admin-Site-Funktionen haben bestimmte Präsentationsannahmen und die JS-Client-App, die mit Django geliefert wird, macht auch einige (das ist, was ich beim Hinzufügen von dynamischen Inline-Modellen gedacht habe), also wäre es eine ziemliche Herausforderung mag eine völlig andere Präsentation rollen.

Die Antwort ist in jedem Fall JA! Die Verwaltungssite bietet Ihnen weitere Funktionen für die interaktive Verwaltung Ihrer Modelldaten. Ich weiß nicht, wie umfangreich Sie den Admin anpassen müssten, aber es gibt CMS, dedizierte Admin-Apps und integrierte Admin-Apps, die wirklich eine Augenweide sind. Django CMS, wie ich mich erinnere, wurde als das beste Open-Source-Django-CMS da draußen gelobt und von dem, was ich sehen kann, rollt es eigene cust Änderung/Listenansichten. Rosetta ist eine Admin-Site-Only-App, mit der Sie Ihre Übersetzungsdateien interaktiv bearbeiten können und über eine umfassende Admin-Oberfläche verfügen! Wenn du auf bitbucket und github herumschaust, wirst du viele weitere Beispiele finden, es sollte dir helfen, herauszufinden, wie viel Aufwand du dafür brauchst.

0

Beide

Wenn Sie auf OK sind damit nicht genau das tun, was Sie seine automatisch für Sie ziemlich viel getan werden soll. Wenn Sie eine genaue Kontrolle über bestimmte Dinge benötigen, kann es schwierig sein, sie anzupassen, ohne die Interna des Admin-Codes zu kennen.

0

die django admin ist mehr eine one size passt alle art von ui die möglicherweise nicht intuitiv für den einsatz in einigen fällen .. anpassen sein aussehen ist einfach, aber erweitern es ist einige, wie schwer. Sie sind besser dran, in diesem Fall Ihre eigenen Ansichten zu entwerfen.

Verwandte Themen