我有 10 个名为 1.html、2.html ..etc 的 html 文件我想要的是根据一个变量,某个文件应该包含在模板中。
例如
{% if foo.paid %}
{% include "foo/customization/{{ foo.id }}.html" %}
{% endif %}
这可能吗 ?导致 foo.id 在包含标签工作之前没有被翻译。结果它给出了一个错误。如何以不同的方式处理这个问题?我应该为此创建一个自定义模板标签吗?
我有 10 个名为 1.html、2.html ..etc 的 html 文件我想要的是根据一个变量,某个文件应该包含在模板中。
例如
{% if foo.paid %}
{% include "foo/customization/{{ foo.id }}.html" %}
{% endif %}
这可能吗 ?导致 foo.id 在包含标签工作之前没有被翻译。结果它给出了一个错误。如何以不同的方式处理这个问题?我应该为此创建一个自定义模板标签吗?
您可以使用add filter和with 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
标记,并与模板目录的路径连接。