django自定义标签与模板块?

时间:2010-01-06 12:57:47

标签: django

我刚开始学习django中的自定义标签,并想知道是否有一个功能允许注入数据,就像它们是块/标签一样。

真正的问题是这个,标签工作得很好,但是让我说我​​的标签是一些html和javascript,这是否意味着我必须调用两个标签功能并将它们注入到页面中。看起来似乎解决方案是使用模板填充块,然后以这种方式附加数据,但这不能做自定义标记需要做的事情。那你怎么解决这样的问题?

1 个答案:

答案 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>