Ich implementiere ein bootstrap navbar
wie in diesem Beispiel gezeigt hier
Elemente in einer Navigationsleiste sind <li>'s
, der "ausgewählte" Eintrag hat das Attribut class="active"
:
In Django befinden sich diese Elemente in einer Vorlage, die von allen Vorlagen eingeschlossen wird, die die Navigationsleiste anzeigen sollen. Ich denke darüber nach, es so zu machen:
%Vor% Ich würde gerne wissen, ob es einen eingebauten Weg gibt, um template_name
zu erhalten (das heißt, die Vorlage wird gerendert, wie sie an render_to_response()
übergeben wurde, in views.py
)
Sicher, ich könnte eine template_name
Variable explizit zu render_to_response()
hinzufügen, was das Problem lösen würde. Aber wenn ich an DRY denke, sollte das nicht nötig sein.
Normalerweise verwende ich ein benutzerdefiniertes Vorlagen-Tag für diesen Anwendungsfall, bei dem eine Klasse zur aktiven Registerkarte, zum Menüelement usw. hinzugefügt wird.
%Vor%Und hier ist ein Ausschnitt aus dem oberen Navigationsbereich:
%Vor%Es gibt einen viel schnelleren Weg, ohne ein benutzerdefiniertes Template-Tag zu erstellen!
%Vor%sei nur auf request.path aufmerksam. Es kann mit einem Schrägstrich-Symbol am Anfang oder ohne am Ende des Pfades sein!
Appending prog.Dusans Antwort für Django 1.7
%Vor%Am besten fügen Sie es zur Basisvorlage hinzu, sodass Sie es nur einmal tun müssen.
Wie ich diese Version mehr als Kevin Stones , weil Sie der Vorlage fast gleichen Code hinzufügen müssen und nicht brauche doch ein Template-Tag.
Tags und Links django twitter-bootstrap twitter-bootstrap-3 django-templates navbar