gpt4 book ai didi

django - 使用 django 模板标签拆分列表

转载 作者:行者123 更新时间:2023-12-02 06:57:04 24 4
gpt4 key购买 nike

我的上下文中有一个列表 my_list,我想将其呈现为两个“列”,其中前 (n+1)/2 项位于第一列,第二列中的最后 n/2 项。有没有一种直接的方法可以使用 django 模板标签/过滤器来执行此操作,或者我是否需要在我的 View 中将列表预先分成两部分?

例如,

<div class="split-50-left">
<ul>
{% for item in [first half of my_list] %}
<li>{{item}}</li>
{% endfor %}
</ul>
</div>
<div class="split-50-right">
<ul>
{% for item in [second half of my_list] %}
<li>{{item}}</li>
{% endfor %}
</ul>
</div>

最佳答案

更“Django”的方式是在 View 中执行此操作,因为您应该在模板中保留尽可能多的逻辑。话虽这么说,有一种方法可以通过模板来做到这一点。

您可以使用slice template tag如果您已经知道列表中有多少个。我们假设您不这样做。

另一种方法是循环两次,只显示你想要的一半。不过,您每次都会检查整个列表,因此可能会很昂贵。它使用 forloop counter .

{% for item in items %}
#half list is calculated in your view. It is the items query /2
{% if forloop.counter < half_list %}
{% item.name %}
{% endif %}
{% endfor %}

{% for item in items %}
#half list is calculated in your view. It is the items query /2
{% if forloop.counter >= half_list %}
{% item.name %}
{% endif %}
{% endfor %}

关于django - 使用 django 模板标签拆分列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951452/

24 4 0