@pinkimy

Почему не работает if в callback data через InlineKeyboardButton telebot?

Возникла проблема с if в callback.data в InlineKeyboardButton. После нажатия кнопок ничего не происходит. Как решить проблему без бд? В чем ошибка? Код прикреплен ниже.
@bot.message_handler(content_types=['text'])
def bot_message(message):
    markup = types.InlineKeyboardMarkup()
    if message.chat.type == 'private':
        if message.text == 'Начать':
            bot.send_message(message.chat.id, 'Приступим к выполнению теста.')
            markup.add(types.InlineKeyboardButton('Вопрос 1', callback_data='q_1'))
            markup.add(types.InlineKeyboardButton('вопрос 2', callback_data='q_2'))
            bot.send_message(message.chat.id, "Что вам больше нравится?",
                             reply_markup=markup)


@bot.callback_query_handler(func=lambda callback: callback.data)
def check_callback_data(callback):
    markup = types.InlineKeyboardMarkup()
    if callback.data == 'q_1' or callback.data == 'q_2':
        markup.add(types.InlineKeyboardButton('вопрос 3', callback_data='q_3'))
        markup.add(types.InlineKeyboardButton('вопрос 4', callback_data='q_4'))
        bot.send_message(callback.message.chat.id, "Что вам больше нравится?",
                         reply_markup=markup)
    elif callback.data == 'q_3' or callback.data == 'q_4':
        markup.add(types.InlineKeyboardButton('вопрос 5', callback_data='q_5'))
        markup.add(types.InlineKeyboardButton('вопрос 6', callback_data='q_6'))
        bot.send_message(callback.message.chat.id, "Что вам больше нравится?",
                         reply_markup=markup)
    elif callback.data == 'q_5' or callback.data == 'q_6':
        markup.add(types.InlineKeyboardButton('вопрос 7', callback_data='q_7'))
        markup.add(types.InlineKeyboardButton('вопрос 8', callback_data='q_8'))
        bot.send_message(callback.message.chat.id, "Что вам больше нравится?",
                         reply_markup=markup)
    elif callback.data == 'q_7' or callback.data == 'q_8':
        markup.add(types.InlineKeyboardButton('вопрос 9', callback_data='q_9'))
        markup.add(types.InlineKeyboardButton('вопрос 10', callback_data='q_10'))
        bot.send_message(callback.message.chat.id, "Что вам больше нравится?",
                         reply_markup=markup)
    else:
        pass
    if callback.data == 'q_10' and callback.data == 'q_7' and callback.data == 'q_1':
        bot.send_message(callback.message.chat.id, 'вопрос 7 и вопрос 10 и вопрос 1')
    else:
        pass


bot.polling(none_stop=True)
  • Вопрос задан
  • 949 просмотров
Решения вопроса 1
@twistfire92
Python backend developer
попробуйте чуть видоизменить хендлер
@bot.callback_query_handler(func=lambda callback: True)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы