Aiogram bot Как передать переменные в другой callback
Пишу бота на aiogram, возник вопрос. Как передать переменные в другой callback? (прошу прощения если не правильно выразился). Есть
@dp.callback_query(F.data == "today")
async def today(callback: types.CallbackQuery):
Далее идет обращение к базе данных. В результат записываю несколько переменных id, position. После чего отправляю ответ пользователю.
await callback.message.answer(
f"Номер заказа: <b>{id}</b>\nСписок позиций: <b>{position}</b>", parse_mode="html", reply_markup=markup)
Ну и в ответе пользователю бота кнопка перехода в след callback_data="successful"
@dp.callback_query(F.data == "successful")
async def successful(callback: types.CallbackQuery)
Так вот, как мне передать переменную id из today в successful? Есть вариант использовать глобальные переменные, но не очень хотелось бы учитывая, что ботом будут пользоваться несколько человек, думаю что переменные будут пересекаться между собой.
Ответы (1 шт):
При формировании кнопки в callback_data
передавай "successful"
, и, через пробел, нужный тебе id
:
button = InlineKeyboardButton(text=f"кнопка перехода в след callback", callback_data=f"successful {id}")
Далее:
@dp.callback_query(F.data.contains("successful")) # обрати внимание на contains
async def successful(callback: types.CallbackQuery):
id = int(callback.data.split()[1]) # извлекаем id из данных
# обработка id