При взаимодействии с динамической инлайн клавиатурой после вывода работает только последняя кнопка

Есть динамическая клавиатура в которую записываются данные из БД sqlite, все данные отображаются, но при нажатии на кнопки функция обработки callback'ов видит только нажатие на последнюю кнопку из списка.

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(callback):
    global counter, row, device_serial_numbers, str_row, number, item
    device_serial_numbers = []
    chat_id = callback.message.chat.id
    try:
        if callback.message:
            if callback.data == 'Админ':       
            elif callback.data == 'Редактировать список':
                counter_of_deleted = 0
                for i in range(counter):
                    try:
                        bot.delete_message(chat_id, callback.message.id - counter_of_deleted - 1)
                        counter_of_deleted += 1
                    except Exception as exception:
                        print(repr(exception))
                try:
                    try:
                        cursor = conn.cursor()
                        cursor.execute(
                            f'SELECT device_serial_number FROM user_devices;')
                        device_serial_numbers = cursor.fetchall()
                        number_of_device_serial_numbers = 1
                    except Exception as exception:
                        print(repr(exception))

                except Exception as exception:
                    print(repr(exception))
                    bot.send_message(chat_id, "Ошибка доступа БД")
                    mes_id = callback.message.message_id + 1
                    time.sleep(2)
                    bot.delete_message(chat_id, mes_id)
                    callback.data = 'Меню админа'
                    return callback_inline(callback)
                if len(device_serial_numbers) == 0:
                    bot.send_message(chat_id, "Нет данных о серийных номерах!")
                    mes_id = callback.message.message_id + 2
                    time.sleep(2)
                    bot.delete_message(chat_id, mes_id)
                    callback.data = 'Меню админа'
                    return callback_inline(callback)

                inline_array = []
                for item in device_serial_numbers:
                    inline_array.append(types.InlineKeyboardButton(item[0], callback_data=f'Удалить{item[0]}'))
                    #ГДЕ-ТО ТУТ КОСЯК
                inline_array.append(types.InlineKeyboardButton("Назад", callback_data='Список серийных номеров Админ'))
                keyboard_elements = [[element] for element in inline_array]
                keyboard = types.InlineKeyboardMarkup(keyboard_elements)

                bot.edit_message_text(chat_id=callback.message.chat.id, message_id=callback.message.id,
                                      text='Список серийных номеров',
                                      reply_markup=keyboard)

elif для проверки кнопок:


            elif callback.data == f'Удалить{item[0]}':
                bot.send_message(chat_id, item[0])

К тому же если к клавиатуре полученной из списка данных добавить еще кнопку (в примере это кнопка "Назад") то она тоже будет работать.


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