@Bjornie
Изучаю Python

Как объединить в шаблоне 3 однотипных (почти) цикла и вывести общий порядковый номер?

Чтобы было понятнее ниже сделаю пример модели и моего шаблона.
Коды
template.html:
{% for match in matches %} 
  <div class="match-col">
    <div class="match-col__names">
      <table class="match-table">
        {% for para in match.matchparainstance_set.all %}
          <tr class="match-table__tr">
            <td class="order">ПОРЯДКОВЫЙ ID</td>
            <td class="name">{{ para.para.person }}</td>
          </tr>
        {% endfor %}
        {% for pag in match.matchpaginstance_set.all %}
          <tr class="match-table__tr">
            <td class="order">ПОРЯДКОВЫЙ ID}</td>
            <td class="name">{{ pag.pag.person }}</td>
          </tr>
        {% endfor %}
        {% for pass in match.team.passenger.all %}
        <tr class="match-table__tr">
          <td class="order">ПОРЯДКОВЫЙ ID</td>
          <td class="name">{{ pass.person }}</td>
        </tr>
        {% endfor %}
      </table>
    </div>
  </div>
{% endfor %}

models.py
class Match(models.Model):
    date = models.DateField()
    match_name = models.CharField(max_length=255)
    team = models.ForeignKey('Team', blank=True, null=True)

class MatchPARAInstance(models.Model):
    match = models.ForeignKey('Match')
    para = models.ForeignKey('PARA')

class MatchPAGInstance(models.Model):
    match = models.ForeignKey('Match')
    pag = models.ForeignKey('PAG')

class Team(models.Model):
    team_name = models.CharField(max_length=255)
    passenger = models.ManyToManyField(PARA)


В админке к модели Match через инлайны я добавляю MatchPAGInstance и MatchPARAInstance. Чтобы получить доступ к объектам PARA\PAG Instance в шаблоне, я обращаюсь через цикл в _set.all.

Мой вопрос заключается в том как объединить эти данные, чтобы получить общий порядковый номер для всех объектов сразу (длина всех объектов, а не текущего цикла), а не для каждого цикла он начинался с начала. Например сейчас выводится так: PARA: 1,2,3; PAG: 1,2; Team: 1,2,3,4,5 т.к. список в конце-концов один (как и шаблон), хотя и тип данных разный.

Модели с приставкой Instance имеют FK к моделям, которые имеют различные наборы полей, поэтому отличаются. Team в свою очередь состоит из объектов модели PARA.
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы