Есть ли способ сравнить хранимые значения и введенные пользователем для удаления дубликатов в представлениях django?
У меня есть переменная в Django View, которая interfacelist
и она содержит [TenGigabitEthernet1/0/1, TenGigabitEthernet1/0/2, TenGigabitEthernet1/0/20, TenGigabitEthernet1/0/21]
. Это то, что пользователь вводит из HTML, и я request.POST.get
ввожу это в представление. А в моей базе данных (SQL) у меня есть следующее:
Возникает вопрос, как мне сравнить данные в базе данных и 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
, так как база данных уже содержит их. Как это исправить, чтобы добиться желаемого? Буду очень признателен, если кто-нибудь сможет посоветовать или помочь мне. Спасибо!