Есть ли способ сравнить хранимые значения и введенные пользователем для удаления дубликатов в представлениях django?

У меня есть переменная в Django View, которая interfacelist и она содержит [TenGigabitEthernet1/0/1, TenGigabitEthernet1/0/2, TenGigabitEthernet1/0/20, TenGigabitEthernet1/0/21]. Это то, что пользователь вводит из HTML, и я request.POST.get ввожу это в представление. А в моей базе данных (SQL) у меня есть следующее:

enter image description here

Возникает вопрос, как мне сравнить данные в базе данных и interfacelist и удалить все дубликаты? Например, в данном случае, TenGigabitEthernet1/0/1, TenGigabitEthernet1/0/2 я бы удалил его и оставил TenGigabitEthernet1/0/20, TenGigabitEthernet1/0/21 для обновления в базе данных.

Я попробовал следующие коды: (Это происходит в Django View)

cursor.execute(f"SELECT interface FROM {tablename} WHERE id >=2")
righttable = cursor.fetchall()
print(righttable)
#Notworking
#for i in righttable:
#    if interfacelist[i] == righttable[i]:
#            interfacelist.remove(a)
#Notworking            
for i in interfacelist:
updatequery2 = f"INSERT INTO {tablename}(interface) VALUES('{i}')"
cursor.execute(updatequery2)
cursor.close()

Переменная righttable в данном случае будет изображением, показанным ранее. Она содержит [TenGigabitEthernet1/0/1,TenGigabitEthernet1/0/2,TenGigabitEthernet1/0/3,TenGigabitEthernet1/0/4,TenGigabitEthernet1/0/5]. Кроме того, закомментированные коды не работают, так как выдают ошибку list indices must be integers or slices, not tuple. Таким образом, в данной ситуации, результат, который я хочу получить, заключается в том, чтобы interfacelist имел только TenGigabitEthernet1/0/20, TenGigabitEthernet1/0/21 и обновлял базу данных. Что означает, что TenGigabitEthernet1/0/1, TenGigabitEthernet1/0/2 являются .remove, так как база данных уже содержит их. Как это исправить, чтобы добиться желаемого? Буду очень признателен, если кто-нибудь сможет посоветовать или помочь мне. Спасибо!

Вернуться на верх