mep*_*pum 19 tags django templates
我已经创建了一个包含标记,但是我希望能够使模板可选择配置.似乎没有开箱即用的支持,所以我想看看人们如何做到这一点 - 也许是一个方法首先搜索模板目录中的特定模板名称,然后再回到默认模板.
@register.inclusion_tag('foo.html', takes_context=True)
Run Code Online (Sandbox Code Playgroud)
bbr*_*rik 34
我需要这样做时使用simple_tag:
from django.template import Library, loader, Context
@register.simple_tag(takes_context=True)
def my_tag(context, template_name):
var1 = ...
t = loader.get_template(template_name)
return t.render(Context({
'var1': var1,
...
}))
Run Code Online (Sandbox Code Playgroud)
cma*_*nda 10
这篇文章拯救了我的生命:http://djangosnippets.org/snippets/1329/
关键是添加到"虚拟模板":
{% extends template %}
Run Code Online (Sandbox Code Playgroud)
该inclusion_tag装饰只是一个快捷方式-它意味着渲染特定的模板与特定的上下文的简单方法.一旦你想要移出它,它就再也无法帮助你了.但这只是意味着您必须在很长的路上编写标记,如文档中所述,并将您想要的模板作为参数传递.