У меня есть словарь элементов какФормирование переменного динамически в шаблоне Джанго
{'Switch_all': 'N/A', 'Router_down': 'N/A', 'Switch_down': 'N/A', 'Router_all': 'N/A'}
И я хотел бы перебрать этот словарь в шаблоне Джанго с помощью ключа еха: Switch_all.
Я могу получить данные из словаря, если я дать ключ как Switch_all
Проблема заключается в том, что мне нужно, чтобы сформировать эту переменную динамически из другого списка. Для экс список будет содержать следующие данные
['Swich','Router']
Я должен пройти по этому списку и добавьте строку как _up, _down сформировать новую переменную, которая является одним из ключей в словаре.
Теперь я попытался с помощью фильтров пользовательских шаблонов, до сих пор я нашел трудности в прохождении двух аргументов
код, который я включен в шаблон является
{{ value|dyndictval:header,"_up" }}
в приведенном выше значение кода является словарь и заголовок - это переменная, которая принимает аргумент типа Switch, Router и при добавлении со вторым аргументом (здесь это «_up») формирует ключ в словаре (значение).
Код пользовательского фильтра
def dyndictval(d, key1):
keys = key1.split(',')
return d.get(keys[0]+keys[1],'')
Я преодолел это требование, используя отдельную переменную, созданную с использованием с тегом, как показано ниже, и используется то же самое, чтобы передать аргумент в пользовательский фильтр
{% with header|add:"_up" as templatevar %}>>>>{{templatevar}}<<<<
{{ value|dyndictval:templatevar }}
{% endwith %}
Этот вид обработки должен быть выполнен в представлении; а не шаблон. –
Спасибо за комментарий. Я попытался сделать это с помощью пользовательского тега, но у меня есть проблема. У меня есть метод def dyndictval (d, key1): print 'debug in dyndictval <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<### (key1, ''), когда я попытался вызвать как {{значение | dyndictval: header, "_ up"}} из шаблона, который он провалил – Balachandar