Многомерный словарь теряет нижние уровни после цикла for в шаблоне django

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

views.py

players = {}

players[1] = {}
players[1].update({
  'avatar': user.avatar,
  'username': user.username,
})

players[1]['items'] = {}
  
players[1]['items'][item.id] = {}
players[1]['items'][item.id].update({
  'item_name' = item.name,
  'item_value' = item.value,
})

template.html

{% for item in players.1.items %}
  {{item}} <!-- Gives me item ids -->
  {{item.1.item_name}} <!-- I would expect that to give me the value of item_name, instead I get nothing -->
{% endfor %}

{{players.1.items.1.item_name}} <!-- This works as it gives me the result I am expecting -->

Словарь можно итерировать, используя ключ-значение в шаблоне Django. дополнительный ".items" дает записи ключа и значения отдельно в цикле. Попробуйте переименовать поля, чтобы избежать путаницы с ".items".

{% for key, values in players.1.items.items %}
  {{key}}
  {{values.1.item_name}} 
{% endfor %}
Вернуться на верх