Как отобразить значение массива в шаблоне Django? - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть следующий массив, и я хотел бы отобразить название дня в шаблоне.

DAYS = ((0, "Saturday"),
        (1, "Sunday"),
        (2, "Monday"),
        (3, "Tuesday"),
        (4, "Wednesday"))

Я могу отобразить понедельник с помощью {{ DAYS.2.1 }}, но мне не удалось отобразить с помощью {{DAYS.class_weekday.key_value.1}}.

Я получаю class_weekday.key_value из цикла for, но когда я использую class_weekday.key_value, он ничего не показывает!

Спасибо!

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

То, что вы хотите, это DAYS[2][1]:)

0 голосов
/ 16 ноября 2018

Согласно django

https://docs.djangoproject.com/en/1.10/ref/templates/api/#variables-and-lookups

Переменные и поиски

Имена переменных должны состоять из любой буквы (AZ), любая цифра (0-9), подчеркивание (но они не должны начинаться с подчеркивания) или точка.

Точки имеют особое значение при отображении шаблона.Точка в имени переменной означает поиск.В частности, когда система шаблонов встречает точку в имени переменной, она пытается выполнить следующий поиск в следующем порядке:

Dictionary lookup. Example: foo["bar"]
Attribute lookup. Example: foo.bar
List-index lookup. Example: foo[bar]

Обратите внимание, что «bar» в выражении шаблона, например, {{foo.bar}} будет интерпретироваться как литеральная строка, не использующая значение переменной «bar», если она существует в контексте шаблона.

Таким образом, для этой цели вы можете использовать пользовательский фильтр.

Вы можете сделать пользовательский шаблон фильтра:

#here, import DAYS
@register.filter
def return_day(i):
    try:
        return DAYS[i][1]
    except:
        return N.A

И в шаблоне

{{ class_weekday.key_value|return_day }}
0 голосов
/ 15 ноября 2018

Вы можете использовать

{{ instance.get_day_display }}

в ваших шаблонах. Это выбрать отображаемое значение вместо значения базы данных.

Если вы хотите отобразить все значения:

[ x for x, y in DAYS ]

вернет список, содержащий список дней,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...