@dsmoly

Django Взаимодействие моделей m2m. Как правильно организовать и вывести в шаблоне?

Есть две модели.
class Stage(models.Model):
    stageNumber = models.IntegerField()
    stageName = models.CharField()
    beginingDate = models.DateField()
    endDate = models.DateField()
    sportsmens = models.ManyToManyField(Person )
   
    def __str__(self):
        return f'{self.stageName}'

class Person(models.Model):
    class Meta:
        abstract = True

    JobNameFull = models.CharField()
    JobNameShort = models.CharField()
    sportRank = models.ForeignKey(SportRank,)
    personFIO = models.CharField()
    
    def __str__(self):
        return f'{self.personFIO}'


Вьюха реализована через ListView:

class StageList(ListView):
    model = Stage

    def get_queryset(self):
        return Stage.objects.all()

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['page_title'] = 'Сведения по этапам'
        return context


Шаблон html:

<table id="example" class="table display table-bordered table-striped">
                    <thead>
                    <tr>
                        <th>Порядковый номер этапа</th>
                        <th>Наименование этапа</th>
                        <th>Начало этапа</th>
                        <th>Окончание этапа</th>
                        <th>Участвующие спортсмены</th>
                    </tr>
                    </thead>
                    <tbody>
                    {% for item in object_list %}
                        <tr>
                            <td>{{ item.stageNumber }}</td>
                            <td>{{ item.stageName }}</td>
                            <td>{{ item.beginingDate }}</td>
                            <td>{{ item.endDate }}</td>
                            <td>{{ item.??? }}</td>
                        </tr>
                    {% endfor %}
                    </tbody>
                </table>

Спортсменов на каждом этапе может быть сколько угодно. Сломал голову пытаясь обратиться к промежуточной таблице созданной django для связи many-to-many между моими моделями. И как сделать вывод в шаблон. Предпологаю что метод join() должен помочь и в одну ячейку таблицы можно будет вывести текст содержащий несколько фамилий. Но не получается.
Есть идеи как сделать?
  • Вопрос задан
  • 549 просмотров
Решения вопроса 1
@MAGistr_MTM
Учусь программировать
{% for person in item.sportsmen.all %}
    {{ person.JobNameFull }}
{% endfor %}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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