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 шт):

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

При формировании кнопки в 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
→ Ссылка