Ich mag Djando Admin eine Liste von Objekt zu meiner benutzerdefinierten Vorlage zu übergeben, delete_view und change_view. Ich habe base_site.html modifiziert, um eine Nav-Leiste einzubinden, und ich möchte aus der Sicht eine Liste von Objekten an die Nav-Leiste übergeben.Hinzufügen von Inhalten zu jeder Ansicht (base_site.html) in Django Admin
Ich habe es zuvor für django Admin-Index, changelist_view und add_view sowie. Ich überschreibe diese Funktion und füge den zusätzlichen Inhalt hinzu, den ich will.
Aber ich kann es nicht in den ersten beiden tun. Die Idee sollte diese:
@csrf_protect_m
@transaction.atomic
def delete_view(self, request, object_id, extra_context=None):
extra_context = extra_context or {}
mygetModels = getModels()
extra_context["modelsTables"] = mygetModels.getTablesModels()
return super(table_NameAdmin, self).delete_view(request, object_id, extra_context)
Wie ich sagte, dass vor in changelist_view, Index- und add_view funktioniert. Aber funktioniert nicht in delete_view und change_view.
Versuchen Sie, eine [benutzerdefinierte Vorlage tag] Schreiben (https://docs.djangoproject.com/en/1.9/howto/custom-template -tags/# simple-tags) und fügen Sie sie in Ihre Admin-Vorlage ein. Auf diese Weise müssen Sie nicht jede einzelne Admin-Ansicht überschreiben, nur um einige Elemente zum Vorlagenkontext hinzuzufügen. – Alasdair
Nun ... sieht in der Tat besser aus. So definiere ich meine Funktion als: @ register.simple_tag def getTablesModels (Selbst-): Klassen = apps.apps.get_models (DDBB) modelClasses = [] für i in xrange (len (Klassen)): obj = dbModels (Klassen [i] .__ name __. lower(), Klassen [i] ._ meta.db_table) modelClasses + = [obj] Rückgabe modelClasses Wie rufe ich es auf My index admin template? Sollte ich etwas importieren? Ich muss durch alle Liste gehen, die dieses Tag zurückgibt {% für Artikel in modesTables%}
Bitte nicht Code in den Kommentaren, es ist unmöglich zu lesen. – Alasdair