@violpeople

Как сделать добавление товара в корзину с плавающим товаром?

Бот на Aiogram. Есть карусель товара с 3 кнопками - "Следующий" , "Предыдущий" , "Добавить в корзину".
Я планирую это сделать так - при нажатии на определенном товаре кнопки "Добавить в корзину" товар отправляется в БД к пользователю(у каждого товара свой айди от 1 до 15). Но загвоздка в том, что я не могу перенести это в отдельную функцию, т.к в отдельной функции айди будет не совпадать с товаром, на котором остановился пользователь.
Подскажите ,пожайлуста, как грамотно это сделать.
@dp.callback_query_handler(lambda c: c.data.startswith('next_'))
async def send_next_item(call: types.CallbackQuery):
    next_item = int(call.data.split('_')[-1])

    kb = InlineKeyboardMarkup(row_width=2)
    next = InlineKeyboardButton(text = 'Следующий',  callback_data = f'next_{next_item+1}')
    previous = InlineKeyboardButton(text= 'Предыдущий',callback_data= 'previous_1')
    add = InlineKeyboardButton(text= 'Добавить в корзину',callback_data= f'add_{next_item+1}')
    
    kb.add(previous,next,add)
  • Вопрос задан
  • 714 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
После этого:

next_item = int(call.data.split('_')[-1])

значение next_item будет равен номеру товара. Ещё можно такое сделать:

operation = call.data.split('_')[0]

Тогда смотрим, что operation == 'add' и добавляем товар с номером next_item (хотя, конечно, слово "next" в названии переменной сбивает с толку, я бы переименовал).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы