Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не работает второй деф в питоне для бота в тг

Аккаунт Калибровка Ученик (101), открыт 2 недели назад
Пишу бота для телеграма на питоне первый раз, при нажатии кнопки выбора дня недели все работает, но если нажать уже кнопку выбора времени то ничего не происходит. Подскажите пожалуйста как переписать чтобы заработало
elif message.text == "Записаться":
keyboard = types.InlineKeyboardMarkup()
key1 = types.InlineKeyboardButton(text = 'Понедельник', callback_data = 'mon')
keyboard.add(key1)
key2 = types.InlineKeyboardButton(text = 'Вторник', callback_data = 'tue')
keyboard.add(key2)
key3 = types.InlineKeyboardButton(text = 'Среда', callback_data = 'wen')
keyboard.add(key3)
key4 = types.InlineKeyboardButton(text = 'Четверг', callback_data = 'chet')
keyboard.add(key4)
key5 = types.InlineKeyboardButton(text = 'Пятница', callback_data = 'fr')
keyboard.add(key5)
bot.send_message(message.chat.id, "Выберите день недели", reply_markup = keyboard)
@bot.callback_query_handler(func = lambda call: True)
def callback_worker(call):
if call.data == 'mon':
keyboard = types.InlineKeyboardMarkup()
time1 = types.InlineKeyboardButton(text = '14:00', callback_data = 'v1')
keyboard.add(time1)
time2 = types.InlineKeyboardButton(text = '16:00', callback_data = 'v2')
keyboard.add(time2)
time3 = types.InlineKeyboardButton(text = '18:00', callback_data = 'v3')
keyboard.add(time3)
bot.send_message(message.chat.id, 'Выберите время', reply_markup = keyboard)
@bot.callback_query_handler(func = lambda call:True)
def callback_worker(call):
if call.data == 'v1':
bot.send_message(call.message.chat.id, 'Вы записаны')
elif call.data == 'v2':
bot.send_message(call.message.chat.id, 'Вы записаны')
elif call.data == 'v3':
bot.send_message( call.message.chat.id , 'Вы записаны')
1 ответ
CausonQ Мудрец (13367) 2 недели назад
Тебе нужно использовать fsm, а не вложенные хендлеры. Это так не работает
Похожие вопросы