Зацикливание шаблона Django для каждого символа
У меня есть текстовый файл, сгенерированный из 100 коммутаторов Cisco следующим образом:
['device1', 'device2', 'device3', 'device4', ....., deviec100]
и я хочу показать эту информацию, используя цикл в шаблоне. Поэтому в моем HTML файле есть что-то вроде этого для циклического просмотра каждого устройства:
{% for x in devie_list %}
{{ x }}
{% endfor %}
<
Как я могу сказать Django, чтобы он перебирал каждый элемент в запятой? Или лучше сказать каждый элемент списка.
верните это в вашем представлении или в вашей модели:
#Your list is a string you can turn into a list like this
device_list_as_list = device_list[1:-1].split(',')
Шаблон:
{% for x in devie_list_as_list %}
{{ x }}
{% endfor %}
Ваш devie_list
- это не список строк, а строка, которая выглядит как список строк.
Вы можете использовать ast.literal_eval(…)
[Python-doc] для оценки этого как литерала Python, и таким образом получить список строк:
from ast import literal_eval
devie_list = literal_eval(devie_list)
и таким образом использовать результат этого в шаблоне.
Вы должны сначала преобразовать device_list
в тип данных список, что можно сделать с помощью любого из следующих методов, а затем выполнить итерацию, как вы написали:
Метод 1: Использование модуля python json
import json
device_list = json.loads(device_list)
Метод 2: Использование функции eval()
device_list = eval(device_list)
Метод 3: Использование методов строкового типа
device_list = device_list.strip('[]').replace('"', '').replace(' ', '').split(',')