Продолжение Inline кнопки не срабатывает (см. описание) telebot
Появилась проблема с продолжением текста по поступлению пробовал сделать следующее, но ничего не получилось:
- создал новый декоратор, который тоже обрабатывает Inline кнопки, только по идее должен подсоединять их к старым, не сработало
- сделал вложенное условие напрямую, также все подсоединил к все как надо, от чего это должно работать, но ничего не вышло
- сделать вложенный декоратор, тоже ничего не вышло
# добавил основные кнопки ( самое начало )
markup_main = types.InlineKeyboardMarkup()
markup_main1 = types.InlineKeyboardButton(text="По поступлению", callback_data="arrive")
markup_main2 = types.InlineKeyboardButton(text="По переводу", callback_data="transfer")
markup_main3 = types.InlineKeyboardButton(text="По проживанию в общежитиях", callback_data="dormitory")
markup_main4 = types.InlineKeyboardButton(text="По военной кафедре", callback_data="military_department")
markup_main.add(markup_main1, markup_main2, markup_main3, markup_main4)
# добавил кнопки о поступлении
markup_arrive = types.InlineKeyboardMarkup()
markup_arrive1 = types.InlineKeyboardButton(text="Бакалавриат /"
"cпециалитет",
url="google.com",
callback_data="bachelor")
markup_arrive2 = types.InlineKeyboardButton(text="Магистратура",
url="google.com",
callback_data="magistracy")
markup_arrive3 = types.InlineKeyboardButton(text="Аспирантура",
url="google.com",
callback_data="postgraduate")
markup_arrive4 = types.InlineKeyboardButton(text="Посмотреть дополнительную информацию по этим темам",
callback_data="dop_inf")
markup_arrive5 = types.InlineKeyboardButton(text="Вернуться назад", callback_data="back_markup_main")
markup_arrive.add(markup_arrive1, markup_arrive2, markup_arrive3, markup_arrive4, markup_arrive5)
# нерабочий код ( вариант решения вопроса 1 ) при его использовании отсутствует вариант с вложенным декоратором и вложенным условием
@bot.callback_query_handler(func=lambda callback: True)
def arrive_answers(call):
if call.data == "dop_inf":
bot.send_message(call.message.chat.id, text="Выберите вопрос, который вас интересует: ",
reply_markup=markup_arrive_in_bachelor)
elif call.data == "back_markup_arrive":
bot.send_message(call.message.chat.id, text="Выбери, какой уровень образования тебя интересует",
reply_markup=markup_arrive)
# добавил кнопки с ответами на вопросы по поступлению в бакалавриант и специалитет
markup_arrive_in_bachelor = types.InlineKeyboardMarkup()
markup_arrive_in_bachelor1 = types.InlineKeyboardButton(
text="Информация о требуемых документах при подаче заявления и сроках приема", callback_data="doc")
markup_arrive_in_bachelor2 = types.InlineKeyboardButton(text="Вернуться назад", callback_data="back_markup_arrive")
markup_arrive_in_bachelor.add(markup_arrive_in_bachelor1, markup_arrive_in_bachelor2)
# нерабочий код ( вариант решения вопроса 2 ) при его присутствии отсутствует вариант с вложенным декоратором и и новым callback_query, как в варианте 1
@bot.callback_query_handler(func=lambda call: True)
def start_menu(message):
if message.data == "arrive":
bot.send_message(message.message.chat.id, text="Выберите интересующий вас уровень образования: ",
reply_markup=markup_arrive)
if message.data == "dop_inf":
bot.send_message(message.message.chat.id, text="Выберите вопрос, который вас интересует: ",
reply_markup=markup_arrive_in_bachelor)
elif message.data == "back_markup_arrive":
bot.send_message(message.message.chat.id, text="Выбери, какой уровень образования тебя интересует",
reply_markup=markup_arrive)
# нерабочий код ( вариант решения 3 ) при его наличии отсутствует новы1 callback_query, как в варианте 1 и вложенное условие
@bot.callback_query_handler(func=lambda callback: True)
def arrive_answers(call):
if call.data == "dop_inf":
bot.send_message(call.message.chat.id, text="Выберите вопрос, который вас интересует: ",
reply_markup=markup_arrive_in_bachelor)
elif call.data == "back_markup_arrive":
bot.send_message(call.message.chat.id, text="Выбери, какой уровень образования тебя интересует",
reply_markup=markup_arrive)
Источник: Stack Overflow на русском