Ich möchte meiner Layoutvorlage etwas Flexibilität hinzufügen, aber ich finde keine Möglichkeit, dies zu tun.Ist es eine Möglichkeit, die Variable in Django an die 'erweiterte' Vorlage zu übergeben?
Ich bin auf der Suche nach einer Möglichkeit, extend
Layout-Vorlage mit Variable, d. H. Variablen im Vorlagenbaum nicht nach unten übergeben.
# views.py
def my_view_func(request):
return render(request, "child.html")
# child.html
{% extends 'layout.html' with show_sidebar=True sidebar_width_class="width_4" %}
<div>Templates stuff here</div>
# layout.html
{% if show_sidebar %}
<div class="{{ sidebar_width_class }}">
{% block sidebar %}{% endblock %}
</div>
{% endif %}
Ich habe jetzt vier Vorlagen mit dem Unterschied, in wenigen Zeilen Code zu erhalten. Zum Beispiel habe ich zwei Vorlagen, die sich durch die Breite der Seitenleiste unterscheiden. Mache ich etwas falsch?
@xpy, nee. In meiner Frage suche ich nach einer Möglichkeit, die Layoutvorlage mit der Variablen zu erweitern, d. H. Die Variable in der Vorlagenstruktur nicht nach unten zu übergeben. –
Entschuldigung, missverstanden. – xpy
Warum werden Sie Ihre Variablen nicht mit Kontext übergeben? Render (request, "child.html", {'sidebar_width': "width_4"}) '? –