Domanda

Vorrei fare quanto segue:

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

... tuttavia, il test per l'uso attuale di un blocco tramite modelli più in basso nella catena dell'ereditarietà non sembra funzionare.

C'è qualche altro condizionale che potrebbe farlo?

È stato utile?

Soluzione

Il linguaggio del modello non fornisce esattamente ciò che stai cercando. I modelli figlio possono chiamare il blocco padre con {{block.super}} , ma i modelli padre non possono fare riferimento a modelli figlio.

La tua scommessa migliore sarà probabilmente quella di scrivere un tag modello personalizzato. Ci sono due sezioni nel manuale del modello da rivedere.

Innanzitutto, Analisi fino ad un altro tag di blocco . Questo ti darà le basi di come analizzare.

Secondo, Analisi fino a un altro tag di blocco e salvataggio dei contenuti . Inserendo un tag di blocco all'interno del tag personalizzato, è possibile rilevare il contenuto e avvolgerlo nel modo appropriato. Questo dovrebbe funzionare, perché credo che il tag del blocco interno verrà analizzato per primo. Se il problema persiste, sottoclassare il tag del modello di blocco esistente fornito da django per implementare la tua magia speciale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top