Wie überschreibe und erweitere ich Django Admin-Vorlagen mit dem AppDirectories Template Loader?

DDD
Freigeben: 2024-11-13 09:02:01
Original
173 Leute haben es durchsucht

How to Override and Extend Django Admin Templates with AppDirectories Template Loader?

Django-Admin-Vorlagen gleichzeitig überschreiben und erweitern

Das Überschreiben der Admin-Vorlagen von Django ist eine häufige Notwendigkeit für die Anpassung der Administrationsoberfläche. Sie können jedoch vor einem Dilemma stehen, wenn Sie eine Vorlage sowohl überschreiben als auch erweitern und gleichzeitig den AppDirectories-Vorlagenlader nutzen möchten.

Überschreiben vs. Erweitern

In Django Beim Überschreiben einer Vorlage wird die vorhandene Vorlagendatei vollständig ersetzt. Durch Erweitern können Sie Inhalte zu bestimmten Blöcken innerhalb der Vorlage hinzufügen Vorlage.

Herausforderungen mit dem AppDirectories-Vorlagenlader

Der AppDirectories-Vorlagenlader stellt eine Herausforderung dar, wenn Admin-Vorlagen überschrieben und erweitert werden. Bei Verwendung dieses Loaders erwartet Django, dass sich die erweiterte Vorlage im selben Verzeichnis wie die Originalvorlage befindet. Dies kann problematisch werden, wenn sich die Admin-Vorlagen in einer anderen Anwendung befinden.

Vorhandene Lösungen

Benutzerdefinierter Vorlagenlader:

Die empfohlene Lösung besteht darin, einen benutzerdefinierten Vorlagenlader zu verwenden, der die Erweiterung von Vorlagen über App-Verzeichnisse hinweg unterstützt. Ein solcher Loader ist auf DjangoSnippets.org verfügbar.

Anpassen des Vorlagenladers von Django:

Eine weitere Option besteht darin, den AppDirectories-Vorlagenlader von Django anzupassen, um das Erweitern von Vorlagen aus bestimmten Apps zu ermöglichen. Dazu gehört das Erstellen einer benutzerdefinierten Template-Loader-Klasse, die vom AppDirectories-Loader erbt, und das Ändern seines Verhaltens.

Djangos Zukunftspläne

Zum jetzigen Zeitpunkt bietet Django keine native Unterstützung Erweitern von Vorlagen über App-Verzeichnisse hinweg. Es gibt jedoch ein offenes Problem auf GitHub, das diese Funktion vorschlägt. Bei Implementierung würde es den Prozess des Überschreibens und Erweiterns von Django-Admin-Vorlagen erheblich vereinfachen.

Beispielverwendung mit benutzerdefiniertem Loader:

Mit dem oben erwähnten benutzerdefinierten Vorlagen-Loader können Sie kann Folgendes in Ihrer Vorlage implementieren:

{% extends "admin:admin/index.html" %}

{% block sidebar %}
    {{block.super}}
    <div>
        <h1>Extra links</h1>
        <a href="/admin/extra/">My extra link</a>
    </div>
{% endblock %}
Nach dem Login kopieren

Dieser Code erweitert die Admin-Indexvorlage effektiv um zusätzliche Seitenleisteninhalte Überschreiben und Erweitern der ursprünglichen Vorlage.

Das obige ist der detaillierte Inhalt vonWie überschreibe und erweitere ich Django Admin-Vorlagen mit dem AppDirectories Template Loader?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage