Бот aiogram непонятная ошибка при создании машины состояний
пишу бота на aiogram, создаю машину состояний, которая запускается сразу после старта. Необходимо забрать два наименования: Login_user and time_user Бот запускает корректно, но после команды старт выдает ошибку:
from aiogram import Bot, types, Dispatcher
from create_bot import dp, bot
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
class FSMAdmin(StatesGroup):
login_user = State()
time_user = State()
@dp.message_handler(commands=['start'], state=None)
async def start(message: types.Message):
await FSMAdmin.login_user.set()
await message.reply('Привет, введи логин')
@dp.message_handler(content_types=['Text'], state=FSMAdmin.login_user)
async def login_def(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['login_user'] = message.text
await FSMAdmin.next()
await reply.message('Отлично, я запомнил. Теперь нужно выбрать время суток')
def register_handlers_user(dp : Dispatcher):
dp.register_message_handler(start, commands=['start'])
Ответы (4 шт):
Автор решения: Даниил Кирилкин
→ Ссылка
В файле инициализации диспетчера нет скобок у MemoryStorage()
Автор решения: sdpctr
→ Ссылка
Так сходу сложно ответить, но утебя как будто здесь ошибка

То есть у тебя должно вот так выглядеть:
self.dispatcher.storage.get_state(self, chat=chat, user=user)
Автор решения: dkuzzm
→ Ссылка
у тебя в функции login_def написано
await reply.message('Отлично, я запомнил. Теперь нужно выбрать время суток')
а надо
await message.reply('Отлично, я запомнил. Теперь нужно выбрать время суток')
Автор решения: dkuzzm
→ Ссылка
# @dp.message_handler(commands=['start'], state=None)
async def start(message: types.Message):
await message.reply('Привет, введи логин')
await FSMAdmin.login_user.set()
# @dp.message_handler(state=FSMAdmin.login_user)
async def login_def(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['login_user'] = message.text
await message.reply('Отлично, я запомнил. Теперь нужно выбрать время суток')
await FSMAdmin.next()
# @dp.message_handler(state=FSMAdmin.time_user)
async def time_user(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['time_user'] = message.text
await message.reply('')
await FSMAdmin.finish()
def register_handlers_user(dp : Dispatcher):
dp.register_message_handler(start, commands=['start'], state='*')
dp.register_message_handler(login_def, state=FSMAdmin.login_user)
dp.register_message_handler(time_user, state=FSMAdmin.time_user)
и потом просто импортируешь register_handlers_user в основной файл
