Нужно чтобы в зависимости от выбора одного из вариантов в одном выпадающем списке, в другом выпадающем списке были данные из двух разных таблиц postgres. Вот кусок кода
class data():
def request_data(request):
# Подключаемся к БД
conn = psycopg2.connect(
host=host,
user=user,
password=password,
database=db_name
)
# Создаем курсор
cur = conn.cursor()
# Выполняем запрос для получения данных из базы данных
cur.execute(request)
# Получаем все строки результата запроса
rows = cur.fetchall()
# Закрываем курсор и соединение с базой данных
cur.close()
conn.close()
return rows
def update_route_list(*args, variable_typet,combo_box_route, variable_route):
select_item = variable_typet.get()
if select_item == 'Троллейбус':
rows = data.request_data(request='select "Route_num" from "Route TB"')
elif select_item == 'Трамвай':
rows = data.request_data(request='select "Route_num" from "Route T"')
combo_box_route['menu'].delete(0, 'end')
for item in rows:
combo_box_route['menu'].add_command(label=item[1], command=tk._setit(variable_route, item[1]))
def create_window(root):
insert_window = tk.Toplevel(root)
variable_typet = tk.StringVar(insert_window)
variable_typet.set("Троллейбус")
combo_box_typet = ttk.OptionMenu(insert_window, variable_typet, "Троллейбус", "Троллейбус", "Трамвай")
combo_box_typet.grid(row=4,column=1)
variable_route = tk.StringVar(insert_window)
variable_route.set("")
combo_box_route = ttk.OptionMenu(insert_window, variable_route, "")
combo_box_route.grid(row=5,column=1)
variable_typet.trace("w", data.update_route_list( variable_typet=variable_typet, combo_box_route=combo_box_route, variable_route=variable_route))
Выдает такую ошибку
Traceback (most recent call last):
File "c:\Users\vladi\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "d:\Projects\tests\Myschedule.py", line 12, in open_insert_window
data.create_window(self.root)
File "d:\Projects\tests\MyDb.py", line 100, in create_window
variable_typet.trace("w", data.update_route_list( variable_typet=variable_typet, combo_box_route=combo_box_route, variable_route=variable_route))
File "d:\Projects\tests\MyDb.py", line 82, in update_route_list
combo_box_route['menu'].add_command(label=item[1], command=tk._setit(variable_route, item[1]))
IndexError: tuple index out of range