如何使用“include”标签在 Django 中动态包含模板
Posted
技术标签:
【中文标题】如何使用“include”标签在 Django 中动态包含模板【英文标题】:How to include templates dynamically in Django using "include" tag 【发布时间】:2012-09-22 02:16:49 【问题描述】:我有 10 个名为 1.html、2.html ..etc 的 html 文件 我想要的是根据一个变量,模板中应该包含某个文件。
例如
% if foo.paid %
% include "foo/customization/ foo.id .html" %
% endif %
这可能吗?导致 foo.id 在包含标签工作之前没有被翻译。结果它给出了一个错误。如何以不同的方式处理这个问题? 我应该为此创建一个自定义模板标签吗?
【问题讨论】:
【参考方案1】:您可以使用 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
标签,并与模板目录的路径连接。
【讨论】:
以上是关于如何使用“include”标签在 Django 中动态包含模板的主要内容,如果未能解决你的问题,请参考以下文章
django 的模板标签“include”如何与 None 一起使用
Django模版语言的复用 1. include标签--模版导入 2.inclusion_tag自定义标签--模版导入 3.母版