Я пытаюсь создать таблицу, в которой перечислены элементы, которые можно классифицировать по типу. Я могу перечислить все элементы и их типы, которые возвращаются из моей базы данных в таблице без проблем. Это на самом деле то, что я хотел бы сделать. Поскольку эти элементы могут быть классифицированы по типу, я не вижу причин перечислять один и тот же тип несколько раз. Таблица упорядочена по типу категории, поэтому все элементы одного типа уже сгруппированы. По сути, у меня есть что-то вроде:
/ ________________ /
/ | item A | категория A | /
/ | пункт B | категория A | /
/ | item C | категория A | /
/ | пункт D | категория B | /
/ | пункт E | категория B | /
/ | пункт F | категория B | /
/ ------------------------ /
то, что я на самом деле хотел бы увидеть, это
/ ________________ /
/ | item A | `` `` `` `` `` `` `` `| /
/ | item B | категория A | /
/ | item C | _________ | /
/ | item D | `` `` `` `` `` `` `` | `
/ | item E | категория B | /
/ | пункт F | _________ | /
/ ------------------------- /
Это можно сделать достаточно легко с помощью ряда строк в html. Моя проблема с количеством строк в 'rowspan' неизвестна. В шаблоне Django у меня есть:
<table class="table table-sm">
<thead>
<tr>
<td scope="col">Col 1</td>
<td scope="col">Col 2</td>
</tr>
</thead>
<tbody>
{% for option in options %}
<tr>
<td>{{ option.itemNumber }}</td>
{% ifchanged option.itemType %}
<td rowspan="how to get this number">{{ option.itemType }}</td>
{% endifchanged %}
</tr>
{% endfor %}
</tbody>
</table>
Единственный способ найти счетчик - это создать второй, идентичный, l oop, пробег по элементы, сосчитайте их, затем вставьте это число в строку, затем продолжите с исходным l oop. Это не кажется хорошим решением, поэтому я бы предпочел не go по этому маршруту. Любая помощь здесь очень ценится.