我正在引用此切片过滤器:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#slice
如果我有这个列表a=[1, 2, 3, 4, 5]
,有没有办法取这个列表的前半部分?
类似于{{ a|slice:":3" }}
。
但是我想要列出3
的大小而不是a
。并且a
可以包含偶数或奇数个元素。而且我不想将列表长度作为变量传递给视图中的上下文
稍后编辑
我想知道是否有其他解决方案,而不是自定义过滤器
答案 0 :(得分:2)
如果在for循环中使用,则可以执行以下操作:
{% for item in a %}
{% if forloop.counter < forloop.revcounter %}
{# first half of list #}
{% else %}
{# second half of list #}
{% endif %}
{% endfor %}
答案 1 :(得分:0)
您可以为此目的进行自定义过滤:
@register.filter("half_slice")
def half_slice_filter(value):
return value[:len(value)/2]