Django-Admin-Vorlagen mit Overriding Template Loader erweitern und überschreiben
Die Herausforderung, Django-Admin-Vorlagen zu erweitern und zu überschreiben, ohne sie zu ersetzen, ist eine häufige Herausforderung Besorgnis bei den Entwicklern. Trotz früherer Diskussionen zu diesem Thema besteht das Problem weiterhin bei Projekten, die den Vorlagenlader „app_directories“ verwenden.
Eine Problemumgehung besteht darin, Admin-Vorlagen zu duplizieren und die Kopien zu erweitern, was jedoch die Komplexität und den Wartungsaufwand erhöht. Um diesen Prozess zu vereinfachen, wurde ein benutzerdefinierter Vorlagenlader entwickelt, der es Entwicklern ermöglicht, jede Vorlage innerhalb einer bestimmten App zu erweitern.
Implementierung des überschreibenden Vorlagenladers
Um eine zu erweitern Admin-Vorlage, zum Beispiel admin/index.html, können Entwickler ihre eigene Vorlage mit demselben Namen im Vorlagenverzeichnis ihrer App erstellen und die folgende Zeile am Anfang einfügen Vorlage:
{% extends "admin:admin/index.html" %}
Innerhalb dieser erweiterten Vorlage können Entwickler Blöcke definieren, um bestimmte Teile der Basisvorlage zu überschreiben. Um beispielsweise zusätzliche Links zur Seitenleiste hinzuzufügen, können sie den folgenden Block erstellen:
{% block sidebar %} {{block.super}} <div> <h1>Extra links</h1> <a href="/admin/extra/">My extra link</a> </div> {% endblock %}
Adressierung des Problems in Django
Stand der neuesten und vorherigen Version In den LTS-Versionen von Django (3.2, 2.2, 1.11) bleibt das Überschreiben und Erweitern von Admin-Vorlagen mithilfe des app_directories-Vorlagenladers bestehen ein dokumentiertes Problem. Es gibt jedoch keinen Hinweis darauf, ob dies in zukünftigen Versionen von Django behoben wird.
Das obige ist der detaillierte Inhalt vonWie kann man Django-Admin-Vorlagen erweitern und überschreiben, ohne sie zu ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!