state распознает как dict aiogram 3
Пишу телеграмм бота. Такая ошибка при запуске:
await state.set_state(admins.admin_on)
^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'set_state'
Вот обработчик команды /admin
from states.user_state import admins
@dp.message(Command("admin"), StateFilter('*'))
async def login_to_the_admin(message: types.Message, state: FSMContext):
user_info = await db.exist_user(message.from_user.id)
if not user_info.get('is_admin', False):
return await message.answer('<b>У вас нет прав администратора</b>')
password = message.text[7:].strip()
if password != '123123':
return await message.answer('<b>Вы ввели не верный пароль</b>')
await message.answer('<b>Добро пожаловать в панель администратора</b>',
reply_markup=get_keyboard_admin_on())
await state.set_state(admins.admin_on)
вот юзер стейт
from aiogram.fsm.state import State, StatesGroup
class admins(StatesGroup):
admin_on = State()
использую редис как хранилище, работает он корректно
storage = RedisStorage(redis=REDIS_CLIENT)
jobstores = {
'default': RedisJobStore(**redis_options),
'memory': MemoryJobStore()
}
dp = Dispatcher(storage=storage)
Ответы (1 шт):
Автор решения: Kuchizu
→ Ссылка
Попробуйте вместо await state.set_state(admins.admin_on)
await admins.admin_on.set()