Django строить таблицы динамически с фильтрами - PullRequest
0 голосов
/ 23 января 2020

решено

Объяснение здесь: Выполнение поиска в стиле 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, но очевидно, что это не работает.

В своем текущем состоянии все данные правильно передаются из представления в шаблон .

Любая помощь очень ценится.

...