Задать вопрос
@treketerer

Как вернуться к первому состоянию в Aiogram?

Делал "регистрацию" в Telegram-боте через Aiogram, под конец "опроса" уточняю всю информацию введённую пользователем, если он ответил "Нет" тогда возвращаюсь в началу опроса, стерев старые ответы, то-есть мне надо вернутся к Handler-у с командой "Start", но проблема в том, что я не знаю как вернутся к началу, по этому пришел сюда задать этот вопрос. Я думаю решение элементарное, но я не понимаю как это сделать... Заранее спасибо!

class reg(StatesGroup):
    name = State()
    yes = State()

@dp.message_handler(commands="start", state="*")
async def start(message: types.Message, state: FSMContext):
            <ТУТ ПОЛЬЗОВАТЕЛЯ СПРАВШИВАЮТ>
            await reg.name.set()

@dp.message_handler(state=reg.name, content_types=types.ContentTypes.TEXT)
async def name(message: types.Message, state: FSMContext):
            dat = await state.get_data()
            await message.reply(f"Вы {dat['fname']} {dat['sname']} родились {dat['day']} числа и {dat['month']} месяца?\nОтветьте Да\Нет)")
            await reg.yes.set()

@dp.message_handler(state=reg.yes, content_types=types.ContentTypes.TEXT)
async def res_step(message: types.Message, state: FSMContext):
    if (message.text.lower()) == "да":
        <<ТУТ ЗАНОСИТ ДАННЫЕ В БД>>
        await state.finish()
     elif (message.text.lower()) == "нет":
          ВОЗВРАТ К ПЕРВОМУ STATE (ТЕМА ВОПРОСА)
  • Вопрос задан
  • 1561 просмотр
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
У команды start нет состояния
await state.finish()
Либо назначайте состояние ввода имени
await state.set_state(reg.name)
Но не забудьте, что у пользователя должна быть возможность выйти из состояния самостоятельно
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽