Tkinter, MySQl, не удаляется информация

Я сделал авто-генерацию формы (для редактирования таблицы), которая принимает только один параметр - название таблицы. Но иногда, элемент не удаляется.

Вот код:

class TestSettings(tkinter.Toplevel):
def __init__(self, table):
    super().__init__()
    self.resizable(False, False)
    self.geometry("500x300")
    self.title("Окно управления данными")

    self.table = table
    self.dataBase = AdminSQL.SQLConnector.AdminSQLTest()

    self.dataList = tkinter.Listbox(self)
    self.createBtn = tkinter.Button(self, text="Создать", command=self.create_some)
    self.changeBtn = tkinter.Button(self, text="Изменить", command=self.update_some)
    self.deleteBtn = tkinter.Button(self, text="Удалить", command=self.delete_some)
    self.columns = []
    self.labels = []
    self.entries = []
    self.ids = []
    self.dataList.pack(side="left")
    self.createBtn.pack(side="right")
    self.changeBtn.pack(side="right")
    self.deleteBtn.pack(side="right")

    self.get_elements()
    self.fulling_elements()
    self.get_values()

def get_elements(self):
    for element in self.dataBase.get_describe(self.table):
        if element[0] != "id":
            self.columns.append(element[0])
            self.labels.append(tkinter.Label(self, text=element[0]))
            self.entries.append(tkinter.Entry(self))
            self.labels[-1].pack(side="top")
            self.entries[-1].pack(side="top")

def fulling_elements(self):
    self.dataList.delete(0, tkinter.END)
    for element in self.dataBase.get_something(self.table):
        self.ids.append(element[0])
        info = []
        for i in range(1, len(element)):
            info.append(element[i])
        self.dataList.insert(tkinter.END, info)

def create_some(self):
    self.dataBase.create_something(self.table, self.get_columns()[:-1],  self.get_values()[:-1])
    self.fulling_elements()

def delete_some(self):
    print(self.ids[self.dataList.curselection()[0]])
    self.dataBase.delete_something(self.table, self.ids[self.dataList.curselection()[0]])
    self.fulling_elements()

def update_some(self):
    self.dataBase.update_something(self.table, self.get_columns_for_update()[:-1], self.get_values_for_update(), self.ids[self.dataList.curselection()[0]])
    self.fulling_elements()

def get_columns_for_update(self):
    to_ret = ""
    for column in self.columns:
        to_ret += column + "=%s,"
    return to_ret

def get_columns(self):
    to_ret = ""
    for column in self.columns:
        to_ret += column + ","
    return to_ret

def get_values(self):
    to_ret = ""
    for value in self.entries:
        to_ret += f"'{value.get()}',"
    return to_ret

def get_values_for_update(self):
    to_ret = []
    for value in self.entries:
        to_ret.append(value.get())
    return to_ret

Я пытался понять в чем дело и начал выводить id, которые необходимо удалить, однако оно выводит уже удаленные id.

введите сюда описание изображения

Вот в консоле вывод уже удаленных элементов, как видите, они повторяются

введите сюда описание изображения


Ответы (0 шт):