首页 > 解决方案 > 有没有办法比较存储的值和用户的输入以删除 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包含它。我该如何解决这个问题以实现我想要的?如果有人可以建议或帮助我,将不胜感激。谢谢!

标签: pythondjango

解决方案


推荐阅读