Я отредактировал свой вопрос, чтобы было легче понять проблему.
У меня есть таблица django, которая состоит из IP-адресов и должна в режиме реального времени показывать, какие из них разрешены или не разрешены в данный момент, ив зависимости от состояния, если адрес разрешен, измените его статус на «не разрешен» и наоборот.
Для этой функции у меня есть столбец флажка, который собирает значения столбца строки (например, IP-адрес, идентификатор и т. д.), когда онпроверяется и публикует сообщения с кнопкой «Отправить».По сути, мне нужно выполнить команды telnet, разрешить / не разрешить ip с помощью флажка.
В views.py я собираю идентификаторы флажка с помощью: pks = request.POST.getlist ("Checkbox").
Затем я получаю значения столбцов строк в списках.
selected_objects = Model.objects.filter(pk__in=pks)
result = [selected_objects.get(pk=item).column name for item in pks]
result2=...
После этого я запускаю скрипт telnet.Здесь я получаю конфигурацию маршрутизатора в виде списка, который я сравниваю с IP-адресами в таблице (оператор if для конфигурации loop-prefix_list-router / liste-selected table ips).Также здесь у меня есть команды tn.write, где я пытаюсь поместить эти значения списка.Пример:
tn.write(b"no ip prefix-list LISTNAME seq " + result[y].encode('ascii') + b" permit " +result1[y].encode('ascii') + b"\n")
И здесь цикл for входит в игру, потому что я должен пройти по этим спискам (у - индекс):
for y in range(len(result)):
if [item for item in liste if item in prefix_list]:
tn.write(b"no ip prefix-list LISTNAME seq " + result[y].encode('ascii') + b" permit " +result1[y].encode('ascii') + b"\n")
time.sleep(1)
if [item for item in liste if item not in prefix_list]:
tn.write(b"ip prefix-list LISTNAME seq " + result[y].encode('ascii') + b" permit " +result1[y].encode('ascii') + b"\n")
time.sleep(1)
Пока все работает, кроме случаякогда я, например, разрешаю один IP-адрес и не разрешаю другой (скрипт работает, когда я только разрешаю или только не разрешаю).
Я ни в коем случае не эксперт, поэтому не стесняйтесь сообщать мне, что я делаю неправильно или могу сделать лучше.