tutorial - templates django python
Bloques anidados en plantillas Django (2)
La plantilla master
en mi aplicación Django se ve así:
{% block parent %}
Some text...
{% block child %}
Default content here...
{% endblock child %}
...some more text
{% endblock parent %}
Ahora, esta plantilla debe sobrescribirse de manera que se child
bloqueo child
:
{% extends "master.html" %}
{% block child %}
New content here...
{% endblock child%}
Sin embargo, la representación sigue siendo la misma (imprimiendo "contenido predeterminado aquí ..."). ¿Me he perdido algo obvio o no son posibles los bloques anidados? (O, violando el principio DRY, ¿tengo que redefinir el bloque parent
?)
Edit: Estoy trabajando con Django 1.1, si eso importa.
Hacer esto:
{% extends "master.html" %}
{% block parent %}
{% block child %}
New content here...
{% endblock child%}
{% endblock parent %}
OK, es un error en el sistema de plantillas de Django. Para la mayoría de los otros casos, Ben James tiene razón (consulte su comentario a mi pregunta anterior).
En mi caso, el bloque child
estaba dentro de un bloque {% ifnotequal ab %}
, y eso rompe la herencia del bloque. Considero que es un error, ya que existen docenas de casos de uso natural para tales operaciones.