我有一个字符串项目的数组我想要在HTML表中显示,它看起来像模板中最简单的方法是'消息'的形式。我称他们为“活动”:Django标签返回块标签中的数组
{% if activities %}
<table class="activities">
<tr>
{% for activity in activities %}
<td>{{ activity }}</td>
{% endfor %}
</tr>
</table>
{% endif %}
我想活动可能是一个简单的标记,它返回一个数组,但我从其他计算器答案(下面的链接)看到,这是返回一个字符串被放在模板,不是为了返回值。
我不需要上下文或任何参数到这个数组,但它可能以不同的页面以不同的格式出现,所以我不希望标签返回表的“innerHTML”。
我该怎么做?我试图在额外文件中的以下(并验证它被称为我故意把语法错误了进去,果然他们触发,当我去到这个页面,所以我删除它们):
from django import template
register = template.Library()
@register.simple_tag
def activities():
return ("A", "B")
activities = register.simple_tag(activities)
我也只用装饰器试过,只要调用'register'(无论是否设置了返回值),都没有工作。桌子总是空的。
在stackoverflow上有很多相关的问题,但每一个似乎都是为一个稍微不同的情况而量身定制的,使用inclusion_tag的closest看起来对于这个简单的例子来说过于设计了。
请注意,您只需注册一次标签。在你的例子中,你使用装饰器,然后在下面第二次注册标签。 – Alasdair