Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django标记返回块标记中的数组_Django_Django Templates - Fatal编程技术网

Django标记返回块标记中的数组

Django标记返回块标记中的数组,django,django-templates,Django,Django Templates,我有一个字符串项数组,我想在HTML表中显示,在模板中最简单的方式似乎是“messages”表单。我称之为“活动”: {% if activities %} <table class="activities"> <tr> {% for activity in activities %} <td>{{ activity }}</td> {% endfor %} </tr> <

我有一个字符串项数组,我想在HTML表中显示,在模板中最简单的方式似乎是“messages”表单。我称之为“活动”:

{% if activities %}
  <table class="activities">
    <tr>
     {% for activity in activities %}
       <td>{{ activity }}</td>
     {% endfor %}
    </tr>
  </table>
{% endif %}
我还尝试了只使用decorator,只调用“register”(无论是否设置返回值),但都不起作用。桌子总是空的


关于stackoverflow有很多相关的问题,但每个问题似乎都是针对一个稍微不同的案例量身定制的,使用inclusion_标记,对于这个简单的案例来说,似乎设计得太过了。

如果您使用的是Django>=1.4,有一种简单的创建方法。它们将返回值存储在
之后指定为
关键字的模板变量中。在您的情况下,这将是:

{%get_activities as activities%}
{%if活动%}
{activities%%中的活动的%s}
{{activity}}
{%endfor%}
{%endif%}
这个标签背后的代码非常简单。真正重要的是
assignment\u标签
decorator

来自django导入模板的

register=template.Library()
@register.assignment_标记
def get_活动():
报税表(“A”、“B”)

对于1.4以上的Django版本,这仍然是可行的,但需要更多的样板代码来创建编译函数和节点类。事实上,Django文档就在
assignment\u tag

之前,请注意,您只需要注册一次标记。在您的示例中,您正在使用decorator,然后在下面第二次注册标记。
from django import template

register = template.Library()

@register.simple_tag
def activities():
  return ("A", "B")
activities = register.simple_tag(activities)