【发布时间】:2012-11-09 04:03:27
【问题描述】:
我有一个字符串项数组,我想在 HTML 表格中显示,看起来模板中最简单的方法是“消息”表单。我称它们为“活动”:
{% if activities %}
<table class="activities">
<tr>
{% for activity in activities %}
<td>{{ activity }}</td>
{% endfor %}
</tr>
</table>
{% endif %}
我认为活动可能是一个返回数组的简单标记,但我从其他 stackoverflow 答案(下面链接)中看到,这是用于返回要放入模板中的字符串,而不是用于返回值。
我不需要这个数组的上下文或任何参数,但它可能以不同的格式出现在不同的页面上,所以我不希望标签返回表格的“innerHTML”。
我该怎么做?我在一个附加文件中尝试了以下内容(为了验证它是否被调用,我故意将语法错误放入其中,果然当我转到此页面时它们触发了它们,所以我删除了它们):
from django import template
register = template.Library()
@register.simple_tag
def activities():
return ("A", "B")
activities = register.simple_tag(activities)
我也试过只使用装饰器,只调用“注册”(有和没有返回值的设置),但没有一个工作。桌子总是空的。
关于 stackoverflow 有很多相关问题,但每个问题似乎都是针对略有不同的情况量身定制的,而使用包含标签的 closest 对于这个简单的情况似乎有些过度设计。
【问题讨论】:
-
请注意,您只需要注册您的标签一次。在您的示例中,您正在使用装饰器,然后在下面第二次注册标签。