25

我有 10 个名为 1.html、2.html ..etc 的 html 文件我想要的是根据一个变量,某个文件应该包含在模板中。

例如

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

这可能吗 ?导致 foo.id 在包含标签工作之前没有被翻译。结果它给出了一个错误。如何以不同的方式处理这个问题?我应该为此创建一个自定义模板标签吗?

4

1 回答 1

46

您可以使用add filterwith statement来完成。

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

首先,您构建一个template_name,它由与 .foo.id连接的字符串格式组成.html。然后将其传递给include标记,并与模板目录的路径连接。

于 2012-10-01T08:40:57.767 回答