我指的這片過濾器:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#sliceDjango的過濾器:動態限幅
,如果我有這個名單a=[1, 2, 3, 4, 5]
,有沒有什麼辦法把這個列表的前半部分? 類似{{ a|slice:":3" }}
。我想要a
的大小。並且a
可以具有偶數或奇數個元素。我不想從視圖傳遞列表的長度作爲一個變量在上下文
以後編輯
我想知道是否有另一種解決方案,除了自定義過濾器
我指的這片過濾器:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#sliceDjango的過濾器:動態限幅
,如果我有這個名單a=[1, 2, 3, 4, 5]
,有沒有什麼辦法把這個列表的前半部分? 類似{{ a|slice:":3" }}
。我想要a
的大小。並且a
可以具有偶數或奇數個元素。我不想從視圖傳遞列表的長度作爲一個變量在上下文
以後編輯
我想知道是否有另一種解決方案,除了自定義過濾器
您可以爲此做自定義過濾器:
@register.filter("half_slice")
def half_slice_filter(value):
return value[:len(value)/2]
如果在一個for循環使用,你可以這樣做:
{% for item in a %}
{% if forloop.counter < forloop.revcounter %}
{# first half of list #}
{% else %}
{# second half of list #}
{% endif %}
{% endfor %}
聰明的舉動......但是,我認爲目前使用自定義過濾器更加優雅 –
哦,是的,忘了提。我已經做了一個自定義過濾器。如果可能的話,我對另一種解決方案感興趣。我想同時列出上半部分和下半部分。 –