Wie hinzufügen-button neben dem Benutzer Hinzufügen Schaltfläche in der Django-Admin-Website
Arbeite ich auf Django-Projekt, wo ich zu extrahieren der Liste der Benutzer auf excel aus dem Django-Admin-Benutzer-Bildschirm. Ich fügte actions
variable zu meinem Beispiel-Klasse für immer die Häkchen-Box vor jedem Benutzer-id.
class SampleClass(admin.ModelAdmin):
actions =[make_published]
Aktion make_published ist bereits definiert. Jetzt möchte ich anfügen weiterer button neben Add user
Taste, wie in fig. . Aber ich weiß nicht, wie kann ich erreichen, das das mit der mit der neuen Vorlage. Ich verwenden möchten, die Taste zum drucken ausgewählten Benutzer Daten in excel. Danke, bitte führe mich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen Sie diese in die Vorlage
Erstellen Sie eine view-Funktion in
YOUR_APP/admin.py
und befestigen Sie es mit annotationFügen Sie neue url in
YOUR_APP/admin.py
url-config für den admin-ModellGenießen 😉
class
Attribute:class="grp-state-focus" class="addlink"
Obwohl die anderen Antworten sind völlig richtig, ich denke, es ist wichtig zu beachten, dass es absolut nicht notwendig, um eine Schaltfläche zu bekommen, wie Verhalten. Sie können admin-Aktionen, wie Sie für die
make_published
Aktion.Dies als Vorteil, nicht benötigen, überschreiben einer Vorlage, und so verhindern, dass potenzielle Probleme beim Upgrade von django version (als admin Vorlagen können sich ändern, und die änderungen möglicherweise nicht "kompatibel" mit der Art, wie Sie überschrieb es).
Admin-Aktionen sind für das hinzufügen einer benutzerdefinierten Schaltfläche ist ein Schritt näher zu "über-Anpassung", was bedeutet, es ist wahrscheinlich Zeit, um zu schreiben Ihre eigenen Ansichten.
Zitat aus der Einführung Absatz der Django-Admin-Dokumentation
Den einfach und akzeptiert Weg ist das überschreiben der Vorlage.
Wenn Sie nicht zu verwirren wollen mit der Django templates, fügen Sie ein
Media
Klasse, um Ihren admin und fügen Sie einige javascript, um die Schaltfläche zu erstellen, obwohl ich denke, anlegen von Elementen mit javascript ist ein bisschen böse und sollte vermieden werden.