Представление таблицы django в HTML с отображением пользовательского подмножества столбцов
Я хочу отобразить таблицу в django, основанную на модели с большим количеством столбцов, но отображать только столбцы, основанные на выборе формы пользователем, доставленной как запрос get. Представление выглядит следующим образом:
from utils import potential_col_list
def display_table(request):
cols_to_display = []
model_filter = ModelFilter(request.GET)
query_set = model_filter.qs.values(*potential_col_list)
for key, value in request.GET.items():
if key in potential_col_list:
cols_to_display.append(key)
return render(request,
'project/display_table.html',
{'queryset': query_set, 'cols_to_display': cols_to_display})
Я хочу, чтобы отображался набор запросов, но только те столбцы, которые пользователь указал в запросе get, использованные в фильтре. Шаблон display_table.html
выглядит следующим образом.
<table>
<thead>
<tr>
{% for col in cols_to_display %}
<th> {{ col }} </th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for item in queryset %}
<tr>
{% for col in cols_to_display %}
<td> {{ item.col }} </td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
Заголовки таблицы отображаются правильно, но ни один из данных из набора queryset не отображается. Когда я пытаюсь отобразить все без cols_to_display
, все отображается нормально.