Не работает 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}'])```