gpt4 book ai didi

python - Django 模板在 for 循环中计算总数

转载 作者:太空宇宙 更新时间:2023-11-03 15:09:59 25 4
gpt4 key购买 nike

我在 Django 模板中有以下代码。

{% if levels %}
{% for l in levels %}
<tr>
<td class="level">{{ l.skill }}</td>
{% for e in employees %}
{% if e.skill_level_id == l.id %}
<td class="race">{{ forloop.counter0 }}</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
{% endif %}

这给我的是类似下面的内容(在 HTML 表格中):

level1  1  5
level2 4 2 6 3

这意味着级别 1(1 和 5)有 2 名员工,级别 2 有 4 名员工。我想要的是每个级别的总和:

level1  2
level2 4

我不确定我应该使用 forloop.counter、forloop.counter0 还是 forloop.parentloop.counter?或者完全不同的东西?

最佳答案

而不是循环和过滤,你应该使用 regroup将您的对象分组到技能级别。像这样的东西:

{% regroup employees by skill_level as employees_by_level %}
{% for level in employees_by_level %}
<tr>
<td class="level">{{ level.grouper.skill }}</td>
<td class="count">{{ level.list|length }}</td>
{% for e in level.list %}
<td class="race">{{ forloop.counter0 }}</td>
{% endfor %}
</tr>
{% endfor %}

请注意,您首先需要让员工按 skill_id 排序才能正常工作。

关于python - Django 模板在 for 循环中计算总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28086581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com