Почему в этом шаблоне Django не выполняется поиск по вложенным точкам?Python

Программы на Python
Anonymous
Почему в этом шаблоне Django не выполняется поиск по вложенным точкам?

Сообщение Anonymous »

Согласно книге Django, система шаблонов Django поддерживает вложенные поиски по точкам:

Поиски по точкам могут быть вложены на несколько уровней. Например, в следующем примере используется {{ person.name.upper }}, что преобразуется в поиск по словарю (person['name']), а затем вызов метода (upper()): '{{ person.name.upper }} {{ person.age }} лет.'

Есть ли гоблины с таким подходом, не широко описанные в документации? У меня проблемы с поиском по вложенным точкам. Вот минимальный пример:
views.py:

Код: Выделить всё

test = [{'foo': [1, 2, 3], 'bar': [4, 5, 6]}, {'baz': [7, 8, 9]}]
ndx = 'bar'
t = loader.get_template('meh.html')
c = Context({'test': test,
'ndx': ndx,})
return HttpResponse(t.render(c))
шаблон meh.html:

Код: Выделить всё

{{ test }}
{{ test.0 }}
{{ test.0.ndx }}

Результирующий HTML:

Код: Выделить всё

[{'foo': [1, 2, 3], 'bar': [4, 5, 6]}, {'baz': [7, 8, 9]}]
{'foo': [1, 2, 3], 'bar': [4, 5, 6]}


Вложенный поиск словарного ключа внутри элемента списка (

Код: Выделить всё

test.0.ndx
) ничего не возвращает, но я ожидаю [4, 5, 6]. Обратите внимание, что ndx оценивается как bar.


Подробнее здесь: https://stackoverflow.com/questions/192 ... o-template

Вернуться в «Python»