Шаблон django не отображает поля списка объектов

В настоящее время я работаю над проектом, используя django 4.0.3, и хочу создать приборную панель с последними действиями, выполненными пользователем. Например, у меня есть модель LTA, и я хочу, чтобы каждый раз, когда пользователь работает с LTA (создает, читает или обновляет), он добавлялся в недавно просмотренные LTA. Для этого я использую ключ сессии под названием "recently_viewed_lta", и каждый раз, когда пользователь работает с LTA, его Id добавляется в переменную сессии. Это работает отлично, проблема в том, что когда я пытаюсь отобразить их в шаблоне, они не отображаются. Надеюсь, код поможет понять мою проблему.

это мое мнение

def home(request):
ltas = Lta.objects.in_bulk(request.session["recently_viewed_lta"], field_name='numlta')
# ltas = Lta.objects.all()
env = Enveloppevol.objects.all()
rapports = Rapportvente.objects.all()
context = {
    'ltas': ltas,
    'env': env,
    'rapports': rapports
}
print(ltas)

return render(request, "home.html", context)

Это мой дом.html

<p class="fs-3">Activité récente</p>
<p>Here are the ltas {{ ltas }} </p>
<p>Here is the session {{ request.session.recently_viewed_lta }} </p>
    {% for i in request.session.recently_viewed_lta %}
    <p>Session element {{ i }}</p>

    {% for lta in ltas.items %}
    <p>Lta n° {{ lta.numlta }} </p>
    {% endfor %}
    {% endfor %}
<hr>

вот вывод в браузере

Here are the ltas {75684: <Lta: Lta n° 75684>, 232323: <Lta: Lta n° 232323>, 252525: <Lta: Lta n° 252525>, 424242: <Lta: Lta n° 424242>, 565656: <Lta: Lta n° 565656>}
Here is the session ['424242', '232323', '75684', '565656', '252525']
Session's elements
Lta n°
Lta n°
Lta n°
Lta n°
Lta n°

Хотя если я заменю

ltas = Lta.objects.in_bulk(request.session["recently_viewed_lta"], field_name='numlta')

by

ltas = Lta.objects.all()

проблемы нет и шаблон корректно отображает все объекты. В чем может быть проблема? Заранее спасибо!!!

Because in_bulk возвращает dictionary:

in_bulk()

in_bulk(id_list=None, *, field_name='pk')¶

Принимает список значений полей (id_list) и имя_поля для этих значений и возвращает словарь, отображающий каждое значение на экземпляр объекта с данным значением поля.

Если вы передаете словарь по контексту, вы можете распаковать ключ и значение следующим образом:

{% for key, lta in ltas.items %}
    <p>Lta n° {{ lta.numlta }} </p>
{% endfor %}
Вернуться на верх