Frage

Ich möchte Folgendes tun:

{% if appnav %}
<hr />
<div id="appnav">
    <ul class="tabs">
        {% block appnav %}{% endblock %}
    </ul>
</div>
{% endif %}

... Es scheint jedoch nicht zu funktionieren.

Gibt es eine andere Bedingung, die dies tun könnte?

War es hilfreich?

Lösung

Die Vorlagensprache bietet nicht genau das, wonach Sie suchen. Kindervorlagen können den übergeordneten Block mit aufrufen {{ block.super }}, aber übergeordnete Vorlagen können keine untergeordneten Vorlagen verweisen.

Am besten schreiben Sie wahrscheinlich ein benutzerdefiniertes Vorlagen -Tag. Es gibt zwei Abschnitte im Vorlagehandbuch zur Überprüfung.

Zuerst, Parsen bis ein weiteres Blocketikett. Dies gibt Ihnen die Grundlagen, wie Sie analysieren können.

Zweite, Parsen bis ein weiteres Blocketikett und sparen Inhalt. Durch das Platzieren eines Block -Tags in das benutzerdefinierte Tag können Sie Inhalte erkennen und entsprechend einwickeln. Dies sollte funktionieren, weil ich glaube, dass das innere Block -Tag zuerst analysiert wird. Wenn das nicht funktioniert, klassifizieren Sie das von Django bereitgestellte vorhandene Block -Vorlagen -Tag, um Ihre spezielle Magie zu implementieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top