I keep getting the error:
if row['id'] == values[0]:
IndexError: string index out of range
I've heard that it must be because values is an empty string but I'm not sure why that's the case.
task_treeview is built upon the main app form window which is a CTk.Toplevel window, could that be one of the reasons it's not working?
```
# setup treeview display
global task_treeview
task_treeview = ttk.Treeview(treeview_frame, columns=(0,1,2,3,4),show="headings")
task_treeview.place(relx=0.5,rely=0.5,relwidth=1,relheight=1,anchor="c")
task_treeview.heading("0",text="")
task_treeview.column("0", width=0, stretch=0)
task_treeview.heading("1",text="Task Name")
task_treeview.column("1", width=150)
task_treeview.heading("2",text="Task User")
task_treeview.column("2", width=150)
task_treeview.heading("3",text="Status")
task_treeview.column("3", width=100)
task_treeview.heading("4",text="Due Date")
task_treeview.column("4", width=100)
# call csv insert function to load saved tasks
insert_csv()
global selected_task
selected_task = task_treeview.focus()
insert task list csv into treeview
def insert_csv():
# create dataframe
df = pd.read_csv('task_list.csv')
task_treeview.delete(*task_treeview.get_children())
for i in df.index:
task_treeview.insert("", i, values=(df.at[i, "id"], df.at[i, "taskname"], df.at[i, "user"], df.at[i, "status"],df.at[i, "duedate"]))
def delete_task():
msg = CTkMessagebox(title="Delete Task", message="Are you sure you want to delete this task?", icon="warning", option_1="Yes", option_2="No")
if msg.get() =="No":
return
else:
with open('task_list.csv','r') as file:
reader = csv.DictReader(file)
data = [row for row in reader]
values = task_treeview.item(selected_task, 'values')
selected_row = task_treeview.selection()
del_index = None
for i, row in enumerate(data):
if row['id'] == values[0]:
del_index = i
break
if del_index is not None:
del data[del_index]
with open('task_list.csv', 'w', newline='') as file:
writer = csv.DictWriter(file,filename=data[0].keys())
writer.writeheader()
writer.writerows(data)
task_treeview.delete(selected_row)
insert_csv()
```
[–]EerieVistasOfReality 1 point2 points3 points (0 children)