Всем доброго времени суток!
Возникла проблема с одной функцией телеграмм бота для учета расходов и доходов, а именно реализация удаления записи из БД. Я так полагаю проблема с обработчиком функции удаления, но не понимаю что конкретно не работает, т.к. в коде ошибок нет, а бот просто не понимает мою команду. При использовании кнопки /del ошибка: Извините, я вас не понял. Пожалуйста, воспользуйтесь клавиатурой с командами(текст сам печатал)
Подскажите пожалуйста, в чем я ошибся? Pycharm ошибок не выдает, код успешно запускается, другие функции работают без ошибок.
Кусок кода из файла обработчиков
Код:
async def show_expenses(msg: types.Message):
operations_id = msg.from_user.id
expenses = get_db().get_data_all_time(operations_id)
if expenses:
expense_text = ""
for date, amount, reason, operations_id in expenses:
expense_text += f" Дата: {date}\n Категория: {reason}\n Сумма: {amount} руб.\n\n"
expense_text += f"/del{operations_id}\n"
expense_text += f"➖➖➖➖➖➖➖➖➖➖➖➖\n\n"
await msg.answer(("Все расходы:\n\n") + expense_text)
else:
await msg.answer("Расходы еще не добавлены", reply_markup=main_kb)
@dp.callback_query_handler(lambda c: c.data and c.data.startswith('del'))
async def process_delete_button(callback_query: types.CallbackQuery):
operations_id = int(callback_query.data[4:])
try:
get_db().delete_operation(operations_id)
await bot.send_message(chat_id=callback_query.message.chat.id, text="Расход успешно удален!")
await bot.answer_callback_query(callback_query.id)
except Exception as e:
await bot.send_message(chat_id=callback_query.message.chat.id, text="Произошла ошибка при удалении расхода.")
print(f"Ошибка: {e}")
Код:
def delete_operation(SELF, row_id):
# формируем запрос на удаление выделенной записи по внутреннему порядковому номеру
SELF.cursor.execute("DELETE FROM operations WHERE id=(?)", (row_id,))
# сохраняем изменения
SELF.connection.commit()