Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Python. Телеграмм бот для учета финансов

Ответить
Настройки темы
Разное - Python. Телеграмм бот для учета финансов

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем доброго времени суток!
Возникла проблема с одной функцией телеграмм бота для учета расходов и доходов, а именно реализация удаления записи из БД. Я так полагаю проблема с обработчиком функции удаления, но не понимаю что конкретно не работает, т.к. в коде ошибок нет, а бот просто не понимает мою команду. При использовании кнопки /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()

Отправлено: 18:08, 13-01-2024

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Python. Телеграмм бот для учета финансов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Посоветуйте простую программу бот для выполнения действий. micro8 Хочу все знать 2 20-07-2017 11:26
Бюджет - учет финансов 1.2.0.1 OSZone Software Новости программного обеспечения 0 26-08-2012 18:30
Бот для R2 4ek1st AutoIt 0 19-08-2011 14:18
Приобретение - ПО для учета лицензий avk Лицензирование продуктов Microsoft 4 03-06-2010 13:34
IRC бот для анекдотов. SkyMAN91 Программное обеспечение Windows 0 09-11-2007 00:03




 
Переход