решено
Объяснение здесь: Выполнение поиска в стиле getattr () в шаблоне django
Я хочу построить таблицы на нашем бизнес-сайте динамически. На данный момент у нас есть несколько страниц с таблицами и фильтрами, которые позволяют искать, но мне нужно go и построить таблицу для каждой из них на основе данных, которые должны отображаться. Я надеялся найти способ использовать один основной файл шаблона, который может охватывать большинство экземпляров для создания новой страницы. Трудность, с которой я сталкиваюсь, состоит в том, что я пытаюсь провести l oop через данные и поместить их в правильную ячейку.
(Некоторый код был удален для удобства чтения.)
Просмотр:
def newDynamicView(request):
jobs = Jobstable.objects.all().order_by('-index')
filter = NewFilter(data, queryset = jobs)
fields_model = filter._meta.fields
fields_text = []
for field in fields_model:
fields_text.append(FIELD_NAME_TEXT[field])
return render(request, 'MYSQLViewer/olivia.html', {'filter': filter, 'fields_model': fields_model, 'fields_display': fields_text})
Текущий шаблон (соответствующая информация):
<div class="table-responsive">
<table id="data_table" class="table table-dark table-bordered table-responsive">
<thead class="thead-light">
{% for field in fields_display %}
<th>{{field}}</th>
{% endfor %}
</thead>
<tbody>
{% for job in filter.qs %}
<tr>
{% for model_field in fields_model %}
<td class="pt-3-half edit {{model_field}}" contenteditable="true" id="{{model_field}}-{{job.index}}">{{job.model_field}}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
Насколько я понимаю, проблема (и возможное решение?) Заключается в этом tag:
{{job.model_field}}
Моя идея состояла в том, чтобы получить атрибут задания с помощью поля model_field, но очевидно, что это не работает.
В своем текущем состоянии все данные правильно передаются из представления в шаблон .
Любая помощь очень ценится.