Сравнение нескольких значений forloop.counter в шаблонах - PullRequest
1 голос
/ 14 апреля 2019

У меня есть домашнее задание, которое требует, чтобы мы создали таблицу журнала успеваемости, в которой будут сохранены те же значения, которые были введены до нажатия кнопки «Отправить», и у меня возникли проблемы с получением этих значений, но у меня есть баллы за ""назначения" в таблице, так что я знаю, что это можно сделать, но я просто новичок с шаблонами django, а что нет.

Я пытался сделать метод рендеринга несколько раз и перебрать этот список результатов, но, очевидно,рендеринг таблицы несколько раз связан с ее собственными проблемами, и сейчас я пытаюсь просмотреть списки студентов, заданий и оценок (вероятно, очень неэффективно) в шаблоне Django, но для получения ожидаемых результатов я быдолжны иметь 3 вложенных цикла и создавать ячейку таблицы, только если индекс внешних двух циклов соответствует определенным ограничениям внутреннего цикла (см. код ниже).

VIEWS.PY :

scores = list(models.Grade.objects.all().values_list('score', flat=True))
students = list(models.Student.objects.all().values_list('id', flat=True))
items = list(models.Item.objects.all().values_list('item_name', flat=True))
return render(request, 'main/index.html', {"row": students, "col": items, = "scores": scores})

INDEX.HTML:

{% for i in row %}
      <tr><th>{{i}}</th>
      {% for j in col %}
          {%  for k in scores %}
              {% if forloop.counter == ((forloop.parentloop.counter + 1) * (forloop.parentloop.parentloop.counter + 1) - 1 %}
                <td><input name="{{i}}_{{j}}" type="number" value="{{ k }}"/></td>
              {% endif %}
          {% endfor %}
      {% endfor %}
      </tr>
{% endfor %}

ThОжидаемые результаты приведут к тому, что таблица будет отображена с теми же значениями ячеек, которые были введены в последний раз, или с тем, что было в таблице оценок, но проблема в том, что в цикле if она выдает ошибку «ID или литерал ожидается», и этокажется, происходит от изменения значений **loop.counter.

1 Ответ

0 голосов
/ 14 апреля 2019

Является ли задание для работы с синтаксисом jinja?

Я бы порекомендовал реализовать эту логику в отдельном определении python, а затем просто передать именно то, что вам нужно, с помощью одного цикла for.Сохраняйте шаблонирование как можно более простым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...