Не работает inline кпопка telegram bot

столкнулся с проблемой, после нажатия одной из кнопок появляется другое меню кпопок, но ответа от них не нету, в терминале ошибки нет P.S если просто отправить сообщение, то все окей

@bot.callback_query_handler(func=lambda call:True)
def fes13(call):
    if call.message:
        if call.data == 'fes13':
            markup = types.InlineKeyboardMarkup(row_width=1)
            m = types.InlineKeyboardButton('Monday', callback_data='m')
            markup.add(m)
            bot.send_message(call.message.chat.id, 'Pick the day of week:', reply_markup=markup)

            @bot.callback_query_handler(func=lambda call1: True)
            def otvet(call1):
                if call.message:
                    if call.data == 'm':
                        bot.send_message(call1.message.chat.id, fes_13[f'{monday}'])```


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

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

Вы предполагаете, что обработав одну кнопку и сразу создав другую, вы останетесь в том же окружении, где и создали кнопку. Но это не так. Обработчик получения кнопок не рекомендуется делать вложенной, тем более с условиями, так как выполнение до него тупо не дойдет. Если вы планируете создавать определенную кнопку, вложите условие сразу в первый обработчик:

@bot.callback_query_handler(func=lambda call:True)
def fes13(call):
    if call.message:
        if call.data == 'fes13':
            markup = types.InlineKeyboardMarkup(row_width=1)
            m = types.InlineKeyboardButton('Monday', callback_data='m')
            markup.add(m)
            bot.send_message(call.message.chat.id, 'Pick the day of week:', reply_markup=markup)

        if call.data == 'm':
            bot.send_message(call1.message.chat.id, fes_13[f'{monday}'])```
→ Ссылка