Diciamo che ho i tre file modello html mostrati di seguito. HTML è minimo solo per illustrare il punto.Il modello multi-livello di Django estende e nidifica i blocchi
È possibile in qualche modo annidare un blocco denominato extra_head_content all'interno di un blocco già denominato extra_head_content. L'idea è di consentire al modello di terzo livello di fornire un blocco denominato extra_head_content. Il modello sopra riportato prende quel contenuto, lo aggiunge al suo blocco denominato extra_head_content e fornisce questo blocco combinato al modello principale.
In sostanza, sto cercando l'annidamento di blocchi tra i file modello ereditati.
Lo scenario esatto che sto cercando di risolvere è che qualsiasi modello dovrebbe essere in grado di aggiungere file javascript o css extra all'elemento head. Tuttavia, il modello più basso non dovrebbe preoccuparsi di quanti livelli in basso è annidato. Allo stesso modo, il contenuto extra della testa fornito da un modello intermedio non dovrebbe essere sovrascritto dall'elemento di blocco del modello terminale.
base.html
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/css/reset.css" />
{% block extra_head_content %}{% endblock %}
</head>
<body>{% block content %}{% endblock %}
</html>
account.html
{% extends "base.html" %}
{% block extra_head_content %}
<link rel="stylesheet" type="text/css" href="/static/css/account.css" />
{% block extra_head_content %}{% endblock %}
{% endblock %}
{% block content %}
<div id="menu">...</div>
{% block account_content %}{% endblock %}
{% endblock %}
account_profile.html
{% extends "account.html" %}
{% block extra_head_content %}
<link rel="stylesheet" type="text/css" href="/static/css/edit_profile.css" />
{% endblock %}
{% block account_content %}
Welcome to your profile
{% endblock %}
django-sekizai è molto utile ... Ora non riesco a trovare alcun riferimento ad esso spedito con Django? AFAICT è ancora un modulo di terze parti – Anentropic
Grazie per averlo raccolto! Sembra essere incluso in Django CMS 2.2 e versioni successive, ma attualmente non è Django, quindi ho corretto la mia risposta. –