Зацикливание шаблона 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(',')
Вернуться на верх