我试图让用户选择他们想在购物车中存储多少商品,我使用 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)
像这样。
PS。
不要那样做。
这样更好。