def add_to_cart():
# Import globals as required
global item_images
global item_names
global item_prices
global count
global total_price
# Find required item details by using the active location of the listbox cursor
img_index = item_box.index(ACTIVE)
name_index = item_box.index(ACTIVE)
price_index = item_box.index(ACTIVE)
# Check listbox to make sure it has been populated and item is selected
#### Do i need this section ####
selection = item_box.curselection()
if selection:
item_box.delete('0', END)
item_box.insert(END, "Oops please select a category")
else:
# Append cart lists ready for html invoice
cart_imgs.append(item_images[img_index])
cart_names.append(item_names[name_index])
cart_prices.append(item_prices[price_index])
# Do i need this handle and if so how do i use it...
try:
item_box.index = int(item_box.curselection()[0])
except IndexError:
item_box.delete('0', END)
item_box.insert(END, "Oops please select a category")
total_price = total_price + float(item_prices[price_index])
# Increase item count per button press.
count = count + 1
У меня есть список, который действует как список покупок.Пользователи нажимают кнопку категории (компьютер / кухня), которая заполняет список, и затем они могут выбирать / добавлять товары в корзину, которая позже отправляется в HTML.Я получаю ошибку, которая говорит, что cart_img.append(item_images[img_index])
индекс списка находится вне диапазона.
Я знаю, это потому, что в списке ничего нет при нажатии add_to_cart func.(это также потому, что сначала не была выбрана ни одна категория) Я включил оператор if / else, чтобы попытаться передать это, а также обработчик ошибок try / исключением.Я нашел несколько постов, в которых говорится о функции обратного вызова и не совсем понимаю, как реализовать это в этой ситуации.
Буду признателен за любую помощь
Мой оригинальный код выглядит следующим образом и работает нормально, если выбрана категория.
def add_to_cart():
# Import globals as required
global item_images
global item_names
global item_prices
global count
global total_price
# Find required item details by using the active location of the listbox cursor
img_index = item_box.index(ACTIVE)
name_index = item_box.index(ACTIVE)
price_index = item_box.index(ACTIVE)
# Append cart lists ready for html invoice
cart_imgs.append(item_images[img_index])
cart_names.append(item_names[name_index])
cart_prices.append(item_prices[price_index])
# Update total price for invoice
total_price = total_price + float(item_prices[price_index])
# Increase count per button press.
count = count + 1