python - significado - jinja2 django
Herencia Jinja2 con Bloques e Incluye (1)
base.html
no se procesa porque no es invocado por ninguna plantilla. Lo que podrías hacer es un segundo nivel de extensión:
base.html:
<html>{% block html %}{% endblock %}</html>
content.html:
{% extends "base.html" %}
{% block html %}
<h1>{% block title %}Title{% endblock title%}</h1>
<div>{% block content_body %}Content Body{% endblock content_body%}</div>
{% endblock %}
Sin embargo, es probable que esto sea una exageración, es probable que encuentre que una sola plantilla base es suficiente (es decir, que combine base.html
y content.html
en una sola plantilla).
No puedo averiguar cómo modificar bloques de plantillas incluidas usando Jinja2. Aquí hay un ejemplo donde uso tres archivos.
base.html:
<html>{% include "content.html" %}</html>
content.html:
<h1>{% block title %}Title{% endblock title%}</h1>
<div>{% block content_body %}Content Body{% endblock content_body%}</div>
story.html
{% extends "base.html" %}
{% block title %}story.title{% endblock title %}
{% block content_body %}story.description{% endblock content_body %}
Al renderizar story.html, obtendré:
<html>
<h1>Title</h1>
<div>Content Body</div>
</html>
¿Cómo renderizaría con los valores esperados?