Я пытаюсь получить доступ к элементам массива из шаблона Django, но получаю ошибку «поле * не найдено». Мой синтаксис шаблона выглядит следующим образом:
<h3>Data:</h3>
<table>
<thead>
<tr><th> Row[0] </th><th> Row[1] </th><th> Row[2] </th></tr>
</thead>
<tbody>
{% for row in info %}
<tr>
<td>{{ row.0 }}</td>
<td align = 'center'>{{ row.1 }}</td>
<td align = 'center'>{{ row.2 }}</td>
</tr>
{% endfor %}
</tbody>
</table>
Считывая мою трассировку стека, похоже, проблема в том, что движок шаблонов пытается ссылаться на поля массива, используя юникодные версии индексов; так что:
{{ row.0 }}
упоминается как row[u'0']
, а не row[0]
тем самым вызывая ошибку.
Точная ошибка: Caught ValueError while rendering: field named 0 not found
Это происходит в:
current = context
try: # catch-all for silent variable failures
for bit in self.lookups:
try: # dictionary lookup
==> current = current[bit]
except (TypeError, AttributeError, KeyError):
try: # attribute lookup
current = getattr(current, bit)
except (TypeError, AttributeError):
try: # list-index lookup
current = current[int(bit)]
Так что это не доходит до того, что он пытается найти список-индекс. С чего бы это?