在django模板中打印图片x次

时间:2012-06-25 03:32:55

标签: django templates

假设我有一个整数值,我输出到django模板说x。我还有一张想连续打印x次的照片。我如何在模板中输出这张图片x次?

2 个答案:

答案 0 :(得分:1)

您可以将其添加到视图中的列表中x次以在{% for %}标记中进行迭代,或者创建custom template tag以重复图像网址x次。

答案 1 :(得分:1)

完成此操作的快速但难看的黑客将使用make_list过滤器:

{% for i in "xxxx"|make_list %}
    {{ image_html }}
{% endfor %}

这会打印图像四次(因为字符串中有四个字符)。

更简洁的方法是使用range()将列表传递到模板中:

context['image_print_range'] = range(1, 5)
...
{% for i in image_print_range %}
    {{ image_html }}
{% endfor %}

另一种解决方案(可能是最干净的解决方案)是自定义模板标记或过滤器,例如:

@register.simple_tag
def print_multiple(value, count):
    """Print a value multiple times."""
    return ' '.join([value] * count)

在你的模板中:

{% print_multiple "foobar" 4 %}