Django:动态构造% include %标签的值?
Posted
技术标签:
【中文标题】Django:动态构造% include %标签的值?【英文标题】:Django: construct value of % include % tag dynamically?Django:动态构造% include %标签的值? 【发布时间】:2011-06-07 21:44:15 【问题描述】:我想在我的 Django 模板中使用% include page.html %
标记,并动态构造page.html
的值。
在 Django 中有没有办法做到这一点?
这是一个伪代码示例:
% include page_mode.html %
谢谢!
【问题讨论】:
【参考方案1】:您可以直接在模板中使用with
标签和add
过滤器连接纯字符串和变量,
见this SO answer。
【讨论】:
【参考方案2】:我认为goliney 提供了更好的答案here
总结:
您可以结合 django 的内置 'with' template tag 将动态构造的模板名称分配给变量和 'add' filter 并动态构造模板名称。
例如:
% with template_name='page_'|add:mode|add:".html" %
% include ""|add:template_name %
% endwith %
【讨论】:
【参考方案3】:来自文档:
模板名称可以是 变量或硬编码(引用) 字符串,单声道或双声道 引号。
因此,在您的视图中构造一个变量并通过上下文将其传递给您的模板,例如“modeTemplate”:“page_”+mode+“.html”。然后做:
% include modeTemplate %
假设 'mode' 在您的视图代码中是一个 Python 变量。
【讨论】:
以上是关于Django:动态构造% include %标签的值?的主要内容,如果未能解决你的问题,请参考以下文章
Django % include % 标签显示硬编码字符串但不可变
如何正确使用 % include % 标签在 django 中呈现模板(如部分)?