我刚开始学习django中的自定义标签,并想知道是否有一个功能允许注入数据,就像它们是块/标签一样。
真正的问题是这个,标签工作得很好,但是让我说我的标签是一些html和javascript,这是否意味着我必须调用两个标签功能并将它们注入到页面中。看起来似乎解决方案是使用模板填充块,然后以这种方式附加数据,但这不能做自定义标记需要做的事情。那你怎么解决这样的问题?
答案 0 :(得分:2)
您需要使用django inclusion tags
事实上,django admin本身使用这些标签的目的非常相似。
从文档中,定义一个这样的函数,它知道它需要从
呈现的模板@register.inclusion_tag('results.html')
def show_results(poll):
choices = poll.choice_set.all()
return {'choices': choices}
模板:
<ul>
{% for choice in choices %}
<li> {{ choice }} </li>
{% endfor %}
</ul>
然后按如下方式插入标记:
{% show_results poll %}
将提供:
<ul>
<li>First choice</li>
<li>Second choice</li>
<li>Third choice</li>
</ul>