Фильтрация последнего созданного запроса и итерация по многим отношениям в проекте Django

У меня следующая модель:

class Log(models.Model):
    log_order = models.IntegerField(validators=[MinValueValidator(1)],blank=True, null=True)

class ActiveSession(models.Model):
    log = models.ManyToManyField(Log, related_name='savedlogs')

В моем представлении я пытаюсь получить самое последнее создание ActiveSession, которое имеет отношения "многие ко многим" с моделью Log для итерации между ними.

Вот как я создал представления:

def get_context_data(self, **kwargs):
     active_session =ActiveSession.objects.get(id=ActiveSession.objects.last().id)
     context = super().get_context_data(**kwargs)
     return context

Я думаю, что моя проблема связана с get Я пытался использовать filter(id=id).latest, но это не сработало.

вот шаблон:

    {% for x in active_session %}
     {{ x.log_order }}
    {% endfor %}

В настоящее время я получаю TypeError: 'ActiveSession' object is not iterable

мой вопрос:

Как исправить эту ошибку и как я могу использовать цикл for в шаблоне для отображения деталей каждого Log, который находится внутри каждого ActiveSession.

В этом примере есть 3 журнала внутри активной сессии, и я хочу показать порядок журналов каждого

Вы должны передать в шаблон единственный объект ActiveSession, а затем перебрать экземпляры журнала, связанные с сессией.

class FooView(generic.View):
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["active_session"] = ActiveSession.objects.last()
        return context

# template.html
{% for log in active_session.log.all %}
    {{ log }}
{% endfor %}
Вернуться на верх