Записывается другой message.text в telebot

Я пытаюсь дать пользователю выбрать, сколько штук товара, он хочет сохранить в корзину, я это делаю с помощью message.text, но записывается другой message.text

@bot.callback_query_handler(func=lambda call: call.data=='101' or call.data=='102' or call.data=='103' or call.data=='104' or call.data=='105' or call.data=='106' or call.data=='107' or call.data=='108' or call.data=='109' or call.data=='110' or call.data=='111' or call.data=='112' or call.data=='113' or call.data=='114' or call.data=='115')
def code_101(call: types.CallbackQuery):
    users[call.message.chat.id]['interested']=call.data
    codes_markup = types.InlineKeyboardMarkup(row_width=2)
    codes_markup.add(types.InlineKeyboardButton('Добавить в корзину 1 шт.', callback_data='add_to_basket'),
                     types.InlineKeyboardButton('Добавить другое кол-во шт.', callback_data='add_to_basket_more'),
                     types.InlineKeyboardButton('Назад', callback_data='back_to_hotspot'),
                     )
    bot.send_message(call.message.chat.id, text=f'Вкус:*{items[call.data][1]}*\n Цена:*{items[call.data][0]}*',
                     reply_markup=codes_markup, parse_mode="Markdown")       #ЗАПИСЫВАЕТ ЗДЕСЬ ТЕКСТ, КОТОРЫЙ ОТПРАВЛЯЕТ БОТ.


@bot.callback_query_handler(func=lambda call: call.data =='add_to_basket_more')
def add_to_basket_more_handler(call: types.CallbackQuery):
    bot.send_message(call.message.chat.id, text='*Напишите число единиц, которое требуется:*', parse_mode="Markdown")
    things_int=call.message.text      #ДОЛЖНО ЗАПИСЫВАТЬ ЗДЕСЬ КОЛ-ВО ШТУК
    print(users)
    try:
        abc = users[call.message.chat.id]['basket']
        if users[call.message.chat.id]['interested'] in abc:
            abc[users[call.message.chat.id]['interested']]+= things_int
        else:
            abc[users[call.message.chat.id]['interested']] = things_int
    except:
        bot.send_message(call.message.chat.id, text='Похоже, вы ввели неверное число, попробуйте еще раз!',
                         parse_mode="Markdown")
        add_to_basket_more_handler(call)
    print(users)

Ответы (1 шт):

Автор решения: oleksandrigo

Вот так.

@bot.callback_query_handler(func=lambda call: call.data == 'add_to_basket_more')
def add_to_basket_more_handler(call: types.CallbackQuery):
    bot.send_message(call.message.chat.id, text='*Напишите число единиц, которое требуется:*', parse_mode="Markdown")
    bot.register_next_step_handler(call.message, input_value)


def input_value(message: types.Message):
    if message.text.isdigit():
        bot.send_message(message.chat.id, text=f'Вы ввели {message.text}')
    else:
        bot.send_message(message.chat.id, text=f'Вы ввели не число')
        bot.register_next_step_handler(message, input_value)

PS.
И не делайте так.

@bot.callback_query_handler(func=lambda call: call.data=='101' or call.data=='102' or call.data=='103' or call.data=='104' or call.data=='105' or call.data=='106' or call.data=='107' or call.data=='108' or call.data=='109' or call.data=='110' or call.data=='111' or call.data=='112' or call.data=='113' or call.data=='114' or call.data=='115')

Лучше так.

@bot.callback_query_handler(func=lambda call: call.data in map(str, range(101, 115+1))
→ Ссылка