Задать вопрос
  • Как сразу добавить информацию в хранилище State (aiogram)?

    @i_ikigai
    class reg(StatesGroup):
        name = State()
        fname = State()
        age = State()
    
    
    @dp.message_handler(commands="reg", state="*")
    async def name_step(message: types.Message, state: FSMContext):
        await message.answer(text='Напиши имя ')
        await reg.name.set()
    
    
    @dp.message_handler(state=reg.name, content_types=types.ContentTypes.TEXT)
    async def fname_step(message: types.Message, state: FSMContext):
        if any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста напишите свое имя")
            return
        await state.update_data(name_user=message.text.title())
        await message.answer(text='Напиши фамилию ')
        await reg.fname.set()
    
    
    @dp.message_handler(state=reg.fname, content_types=types.ContentTypes.TEXT)
    async def age_step(message: types.Message, state: FSMContext):
        if any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста напишите свою фамилию")
            return
        await message.answer(text='Напиши возраст ')
        await state.update_data(fname_user=message.text.title())
        await reg.age.set()
    
    
    @dp.message_handler(state=reg.age, content_types=types.ContentTypes.TEXT)
    async def res_step(message: types.Message, state: FSMContext):
        if not any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста введите свой возраст")
            return
        await state.update_data(age_user=message.text.lower())
        user_data = await state.get_data()
        await state.finish()

    в моем коде в user_data записаны 3 сообщения пользователя в словарь. Оттуда их просто получать через обращение f'{user_data[name_user}}' например
    Разобрался че к чему отсюда https://mastergroosha.github.io/telegram-tutorial/...
    В ссылках на гитхаб есть рабочий пример, там он более полный и по нему проще понять
    Ответ написан
    1 комментарий