callback data не обрабатывается в telebot

Пишу код, который имеет обработку текстовых сообщений и кнопки в телеграме. Кнопки были и после обработки текста и всё работало. После того, как я обработал текст callback просто не реагирует. То ли он не поялвяется в handle_text, то ли просто код не идёт дальше. Прошу помочь и исправить мой код, сижу уже около 3 часов пытаюсь решить.

@bot.message_handler(func=lambda message: True)
def handle_text(message):
    global txt
    #Обработка кнопки выбора направления
    direction = l[0]
    print(direction)
    markup = types.InlineKeyboardMarkup()

    txt = message.text

    # Получаем данные из веб-страницы
    url = 'url'
    r = requests.get(url)
    soup = bs(r.text, "html.parser")

    # Проверяем, является ли введенный номер числом и есть ли такой студент
    if txt.isdigit() and if_misis(list_digits(soup), txt)[1] == True:
        print(direction + '------------------------')
        btn1 = types.InlineKeyboardButton('Плата', callback_data=f'plata-{direction}')
        btn2 = types.InlineKeyboardButton('Бюджет', callback_data=f'budget-{direction}')

        # Создание кнопки выбора варианта обучения
        if str(markup).strip('{}').split("': ")[-1] == '[]':
            markup.row(btn1, btn2)
            bot.send_message(message.chat.id, 'Выбери вариант обучения', reply_markup=markup)
        else:
            bot.send_message(message.chat.id, 'Выбери вариант обучения', reply_markup=markup)
    else:
        bot.send_message(message.chat.id, "Некорректный номер, попробуй еще раз")
@bot.callback_query_handler(func=lambda callback_query: True)
def callback_message(callback_query: types.CallbackQuery, call):
    #Обработка кнопки выбора вида обучения
    if callback_query.data == 'plata-ivt':
        print('plata-ivt')
        print(callback_query.data)
        # Получаем данные из веб-страницы МИСИС для платных мест
        url = 'url'
        r = requests.get(url)
        soup = bs(r.text, "html.parser")

        bot.edit_message_text(chat_id=callback_query.message.chat.id, message_id=callback_query.message.id, text='Плата')
        bot.send_message(callback_query.message.chat.id, 'Твое место: ' + printing_mesta(soup, txt))
        bot.send_message(callback_query.message.chat.id,
                         'Если хочешь выбрать другой вариант обучения, то введи регистрационный номер еще раз')

    # Обработка кнопки выбора вида обучения
    elif call.data == 'budget-ivt':
        print('budget-ivt')
        # Получаем данные из веб-страницы МИСИС для бюджетных мест
        url = 'url'
        r = requests.get(url)
        soup = bs(r.text, "html.parser")

        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id, text='Бюджет')
        bot.send_message(call.message.chat.id, 'Твое место: ' + printing_mesta(soup, txt))
        bot.send_message(call.message.chat.id, 'Всего мест на бюджет ' + '116')
        bot.send_message(call.message.chat.id,
                         'Если хочешь выбрать другой вариант обучения, то введи регистрационный номер еще раз')

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

Автор решения: Beneviento

в функции callback_message вы используете call вместо callback_query в условии elif. Также, у вас есть аргумент call в функции, который не используется

@bot.callback_query_handler(func=lambda callback_query: True)
def callback_message(callback_query: types.CallbackQuery):
    # Обработка кнопки выбора вида обучения
    if callback_query.data == 'plata-ivt':
        print('plata-ivt')
        print(callback_query.data)
        # Получаем данные из веб-страницы МИСИС для платных мест
        url = 'url'
        r = requests.get(url)
        soup = bs(r.text, "html.parser")

        bot.edit_message_text(chat_id=callback_query.message.chat.id, 
message_id=callback_query.message.id, text='Плата')
        bot.send_message(callback_query.message.chat.id, 'Твое место: ' + 
printing_mesta(soup, txt))
        bot.send_message(callback_query.message.chat.id,
                     'Если хочешь выбрать другой вариант обучения, то введи 
регистрационный номер еще раз')

    # Обработка кнопки выбора вида обучения
    elif callback_query.data == 'budget-ivt':
        print('budget-ivt')
        # Получаем данные из веб-страницы МИСИС для бюджетных мест
        url = 'url'
        r = requests.get(url)
        soup = bs(r.text, "html.parser")

        bot.edit_message_text(chat_id=callback_query.message.chat.id, 
message_id=callback_query.message.id, text='Бюджет')
        bot.send_message(callback_query.message.chat.id, 'Твое место: ' + 
printing_mesta(soup, txt))
        bot.send_message(callback_query.message.chat.id, 'Всего мест на бюджет ' 
+ '116')
        bot.send_message(callback_query.message.chat.id,
                     'Если хочешь выбрать другой вариант обучения, то введи 
регистрационный номер еще раз')
→ Ссылка
Автор решения: Ne Zur

Решил так: у меня до этих енопок были еще callback. Я просто вставил туда все необходимые мне callback и удалил callback_message. И всё заработало

→ Ссылка