У меня есть база данных SQLite, в которую я помещаю несколько точек информации (имя, DOB, местоположение и т. Д.), Используя пользовательский ввод виджетов TKinter.
Я создал форму для пользователей, и она отлично работает.Затем я создал «обратную форму» для администраторов.Он извлекает данные из базы данных и вставляет их обратно в формат только для чтения, чтобы администраторы могли точно видеть, как они были отправлены.
Затем я создал функцию поиска, которая отображает основные результаты из базы данных.Затем я использовал кнопку для администраторов, чтобы нажать, чтобы получить более подробную информацию через обратную форму.
Моя проблема в том, что когда я перетаскиваю обратную форму, она тянет только последнюю запись в результатах поиска, чтобы заполнить форму.Мне нужно, чтобы каждая запись в базе данных подтягивала соответствующую информацию, которая идет вместе с ней.
def retrieve_result(self):
con = sql_connect(self)
self.data_retrieval = con.cursor()
self.data_retrieval.execute('SELECT * FROM Raw_data WHERE first_name=(?)', (self.first_name_field.get(),))
return self.data_retrieval.fetchall()
sql_close(con)
def display_results(self):
results = self.retrieve_result()
for index, data_list in enumerate(results,10):
Button(self.frame, text=(data_list[0] +" " + data_list[1]),
command=self.retrieve_form).grid(row=index+1, column=0)
Label(self.frame, text=data_list[2]).grid(row=index+1, column=1)
self.db_first_name = StringVar(value=data_list[0])
self.db_last_name = StringVar(value=data_list[1])
self.db_dob = StringVar(value=data_list[2])
def retrieve_form(self):
self.first_name_field = Entry(self.frame, state=DISABLED, disabledbackground="gray95", disabledforeground="black",textvariable=self.db_first_name, bg="white")
self.first_name_field.grid(row=3, column=0, sticky=N)
self.last_name_field = Entry(self.frame, state=DISABLED, disabledbackground="gray95", disabledforeground="black", textvariable=self.db_last_name, bg="white")
self.last_name_field.grid(row=3, column=1, sticky=N)
self.age_field = Entry(self.frame, state=DISABLED, disabledbackground="gray95", disabledforeground="black", textvariable=self.db_dob, bg="white")
self.age_field.grid(row=5, column=0, sticky=N, padx=10)
Код гораздо сложнее, но, думаю, я понял, что нужно для помощи.Как я уже сказал, я могу вытянуть всю информацию базы данных в ядро, но форма извлекает только последнюю запись в базе данных, а не каждую запись, создавая свою собственную уникальную информацию.