what - Cómo incluir plantillas dinámicamente en Django usando la etiqueta "incluir"
meet django (1)
Tengo 10 archivos html con los nombres 1.html, 2.html ..etc. Lo que quiero es según una variable, se debe incluir un determinado archivo en la plantilla.
p.ej
{% if foo.paid %}
{% include "foo/customization/{{ foo.id }}.html" %}
{% endif %}
Es posible ? Porque el foo.id no se está traduciendo antes de que funcione la etiqueta de inclusión. Como resultado está dando un error. ¿Cómo se puede manejar este problema de una manera diferente? ¿Debo crear una etiqueta de plantilla personalizada para esto?
Puedes hacerlo con agregar filtro y con declaración .
{% if foo.paid %}
{% with template_name=foo.id|stringformat:"s"|add:".html" %}
{% include "foo/customization/"|add:template_name %}
{% endwith %}
{% endif %}
Primero construye un nombre de template_name
, que consiste en foo.id
en formato de cadena concatenado con .html
. Luego lo pasa para include
etiqueta, concatenada con la ruta al directorio de plantillas.