How to include templates dynamically in Django using “include” tag


December 2018


8.4k time


I have 10 html files with the names 1.html, 2.html ..etc What I want is according to a variable, a certain file should be included in the template.


{% if foo.paid %}
    {% include "foo/customization/{{ }}.html" %}
{% endif %}

Is this possible ? Cause the is not being translated before the includes tag works. As a result its giving a error. How can this issue be handled in a different way ? Should I create a custom template tag for this ?

1 answers


Вы можете сделать это с надстройкой фильтром и с утверждением .

{% if foo.paid %}
    {% with|stringformat:"s"|add:".html" %}
        {% include "foo/customization/"|add:template_name %}
    {% endwith %}
{% endif %}

Прежде всего построить template_name, которые состоят из foo.idв формате строки сцепляются с .html. Затем вы передаете его includeпомечать, сцепляются с путем к директории шаблона.