Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man Django-Admin-Vorlagen erweitern und überschreiben, ohne sie zu ersetzen?

Wie kann man Django-Admin-Vorlagen erweitern und überschreiben, ohne sie zu ersetzen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-13 00:00:02853Durchsuche

How to Extend and Override Django Admin Templates Without Replacing Them?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn