Mail.ru
Почта
Мой Мир
Одноклассники
ВКонтакте
Игры
Знакомства
Новости
Календарь
Облако
Заметки
Все проекты
Все проекты
выход
Регистрация
Вход
Категории
Все вопросы проекта
Компьютеры, Интернет
Темы для взрослых
Авто, Мото
Красота и Здоровье
Товары и Услуги
Бизнес, Финансы
Наука, Техника, Языки
Философия, Непознанное
Города и Страны
Образование
Фотография, Видеосъемка
Гороскопы, Магия, Гадания
Общество, Политика, СМИ
Юридическая консультация
Досуг, Развлечения
Путешествия, Туризм
Юмор
Еда, Кулинария
Работа, Карьера
О проектах Mail
Животные, Растения
Семья, Дом, Дети
Другое
Знакомства, Любовь, Отношения
Спорт
Золотой фонд
Искусство и Культура
Стиль, Мода, Звезды
Полный список
Спросить
Лидеры
Поиск по вопросам
Ответы Mail
Программирование
Android
C/C++
C#
iOS
Java
JavaScript
jQuery
SQL
Perl
PHP
Python
Веб-дизайн
Верстка, CSS, HTML, SVG
Системное администрирование
Другие языки и технологии
Вопросы - лидеры.
Тг бот на питоне
1 ставка
Лидеры категории
Лена-пена
Искусственный Интеллект
М.И.
Искусственный Интеллект
Y.Nine
Искусственный Интеллект
•••
Не работает второй деф в питоне для бота в тг
Аккаунт Калибровка
Ученик
(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, а не вложенные хендлеры. Это так не работает
Похожие вопросы
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 , 'Вы записаны')