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

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

Аккаунт Калибровка Ученик (98), на голосовании 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 , 'Вы записаны')
Голосование за лучший ответ
CausonQ Мудрец (13840) 3 месяца назад
Тебе нужно использовать fsm, а не вложенные хендлеры. Это так не работает
Похожие вопросы