Вместо того, чтобы хранить список имен таблиц отдельно от объектов таблицы в контексте, может быть лучше сохранить их более тесно связанными, чтобы упростить работу в шаблоне.
Например, когда вы создаете таблицу, вы можете добавить ее в список all_tables
вместе с ее именем, используя кортеж:
for x in some_list:
if some_condition(x):
named_table = (x, MyModelTable(get_some_data(x)))
context['all_tables'].append(named_table)
Вы не показали sort_my_way()
, но сортировка списка кортежей в context['all_tables']
продолжит работать должным образом с sorted()
и list.sort()
в Python. Но вы можете легко настроить это с помощью функции key , если вам нужно.
Затем в вашем шаблоне вы можете зациклить как имя таблицы, так и саму таблицу без дополнительного поиска:
{% for name, table in all_tables %}
{% if name %}
<H3>{{ name }}</H3>
{% render_table table %}
<br/>
{% endif %}
{% endfor %}