Многомерный словарь теряет нижние уровни после цикла 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 %}