gpt4 book ai didi

python - Django 模板中的 Rowspan 和分组

转载 作者:可可西里 更新时间:2023-11-01 13:31:45 25 4
gpt4 key购买 nike

我在查询集中有很多行。许多行在两个字段中共享相同的值。

我想在表格中显示整个查询集,但我不想多次打印相同的值。

我的输出是这样的

  mood, age, id
=============
glad, 31, 1
, , 2
, , 3
, 32, 4
, , 5
sad, 31, 6
, , 7
, 34, 8
, , 9
, , 10
happy, 40, 11

我希望这是有道理的。当多行共享相同的值时,我不想再次打印它们。我正在使用 rowspan 属性使行填充共享相同值的行数。

我知道如何只处理一个字段:

{% regroup my_queryset by mood as mood_list %}
{% for mood in mood_list %}
{% for node in mood.list %}
<tr>
{% if forloop.first %}
<td rowspan="{{ mood.list|length }}">{{ mood.grouper }}</td>
{% endif %}
<td>{{ node.id }}</td>
</tr>
{% endfor %}
{% endfor %}

但是当心情和年龄都应该“填满多行”时,我不知道如何完成同样的事情。我想一定有一些好的方法,因为我看到其他网站在很多领域都在做同样的事情(例如在商业智能工具中)。

最佳答案

使用 here 中的示例和来自 here 的 parentloop 提示,我创建了以下代码:

{% if my_queryset %}
{% regroup my_queryset by mood as data_by_mood %}
<table border="1">
<thead>
<caption>Data</caption>
<tr><th>mood</th><th>age</th><th>id</th></tr>
</thead>
<tbody>
{% for data0 in data_by_mood %}
{% regroup data0.list by age as data0_by_age %}
{% for data1 in data0_by_age %}
{% for data in data1.list %}
<tr>
{% if forloop.first %}
{% if forloop.parentloop.first %}
<td rowspan="{{ data0.list|length }}">{{ data0.grouper }}</td>
{% endif %}
<td rowspan="{{ data1.list|length }}">{{ data1.grouper }}</td>
{% endif %}
<td>{{ data.id }}</td>
</tr>
{% endfor %}
{% endfor %}
{% endfor %}
</tbody>
</table>
{% endif %}

我希望它有所帮助(它对我解决了类似的问题)。

关于python - Django 模板中的 Rowspan 和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28361410/

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