@satway

Не работает callback_query_handler?

Не могу понять, почему не срабатывает callback_query_handler. по принту вижу, что в его функцию даже не заходит, хотя если вывести callback_data=i[1], то видно, что условие выполняется. Там просто цифры передаются из БД

@bot.message_handler(commands=['get'])
def get_from_my_list(message):

    with sqlite3.connect('users_data.db',check_same_thread=False) as db:
        cursor = db.cursor()
        user_id = message.from_user.id
        query = """SELECT wish, id FROM wishes WHERE user_id = {}""".format(user_id)
        cursor.execute(query)
        data = cursor.fetchall()
        print(data)
        if len(data) == 0:
            bot.send_message(message.chat.id, 'Ваш список пустой')

        for i in data:
            keyboard_del = types.InlineKeyboardMarkup(row_width=1)
            button = types.InlineKeyboardButton("Удалить {}".format(i[1]), callback_data=i[1])
            keyboard_del.add(button)
            bot.send_message(message.chat.id, i,reply_markup=keyboard_del)
            print(i[1])


        @bot.callback_query_handler(func=lambda call: True)
        def answer(call):
            message = call.message
            print(call.data)
            query = """DELETE FROM wishes WHERE user_id = {user_id} AND id = {key}""".format(user_id=user_id,key=int(call.data))
            cursor.execute(query)
            db.commit()
            bot.answer_callback_query(call.id)
            send = bot.send_message(call.message.chat.id, 'Удалено')
  • Вопрос задан
  • 472 просмотра
Пригласить эксперта
Ответы на вопрос 1
@satway Автор вопроса
в общем-то, камрады, ошибка была банальная - забыл я, что объявил выше по коду похожий такой же обработчик уровнем выше, вот он и срабатывал. А так, код рабочий. Долго думал, а допер только когда сюда написал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы