Как передать переменную в State aiogram

Рейтинг: 0Ответов: 1Опубликовано: 06.03.2023

Есть функция, в которой я получаю данные каллбэка и мне нужно передать её в машину состояния. Как это сделать?

async def test_func(call: types.CallbackQuery):
    data = call.data

    await message.answer(text='Введите ваше значение:')
    await FSMUser.value.set()


async def state_func(message: types.Message, state: FSMChannelEdit):
    await message.answer(text='Данные успешно получены, каллбэк дата которую вы отправили: {data}') #Каллбэк нужно передать сюда


def register_handslers_test(dp: Dispatcher):
    dp.register_callback_query_handler(test_func, lambda call: call.data == 'any')
    dp.register_callback_query_handler(state_func, state=FSMUser.value)

Ответы

▲ 0

Вот пример кода в котором показана работа со стейтами.

Вот примеров от туда:

async with state.proxy() as data:
    data['name'] = message.text

В данном примере дата является словарем и переменными которые вы положили в state. Работать с ним можно так же как и с обычными словарями, за исключением использования контекстного менеджера.