Как получить доступ к элементам списка в шаблоне django jinja динамически, используя индексирование переменных

Ошибка шаблона Django jinja - TemplateSyntaxError

Я пытался создать пример страницы show users, где я хочу показать имя пользователя, пароль и роль пользователей. Я буду хранить роли в виде чисел и позже попытаюсь получить имя роли из списка.

Я жестко закодировал имена этих ролей в список roles = ['admin', 'teacher', 'student'] эти роли были переданы html-странице как значение контекста. Также я передаю переменную num для доступа к элементам списка (в настоящее время ее значение также жестко закодировано, я буду менять это в будущем)

views.py

def index(request):
   roles = ['admin', 'teacher', 'student']
   num=1
   return render(request=request, template_name='show_all.html', context={'roles': roles, 'num': num})

и внутри моей html-страницы я пытаюсь получить доступ к этому списку, используя переменную num, как указано ниже

show_all.html

{{roles[num]}}
но выдает ошибку

TemplateSyntaxError at /show_all
Не удалось разобрать остаток: '[num]' из 'roles[num]'

>

есть несколько решений, которые говорят roles.0 даст вам первый результат и roles.1 даст следующий, Но я не хочу жестко кодировать индекс там.

requirements.txt

asgiref==3.5.2
Django==4.1.3
sqlparse==0.4.3
tzdata==2022.6

Я пытался

{{roles.num}}
{{roles.get(num)}}
{{roles[num]}}

ничто не дает мне желаемого результата.

Обходным решением может быть следующее:

def index(request):
   roles = ['admin', 'teacher', 'student']
   num=1
   return render(request=request, template_name='show_all.html', context={'roles': roles, 'num': num, 'rolesi': roles[num]})

И затем: show_all.html

{{rolesi}}
Вернуться на верх