Почему хендлеры не ловят в aiogram 3?

Почему не ловят хендлеры в моём коде?
Не ловят два хендлера, которые я пометила комментариями

from aiogram import Dispatcher, types, Router, F
from database.BotDB import botdb
from aiogram.dispatcher.fsm.context import FSMContext
from aiogram.dispatcher.filters.state import StatesGroup, State

form_router = Router()

class FSMAdmin(StatesGroup):
    command = State()
    name_product = State()
    name_category = State()
    discription = State()
    columns = State()

async def command_admin(message: types.Message, state : FSMContext):
    for admin_id in botdb.check_admin():
        if admin_id["chat_id"] == message.from_user.id:
            await message.answer("Приветствую, админ, какую выполнить команду")
            await state.set_state(FSMAdmin.command)
        else:
            await message.answer("Вы не являетесь администратором!")

async def command_add_product_name(message: types.Message, state: FSMContext):
    await state.update_data(name_product=message.text)
    await state.set_state(FSMAdmin.discription)
    await message.answer("Опишите продукт")

async def command_add_product_discription(message: types.Message, state: FSMContext):
    data = await state.update_data(product_discription=message.text)
    await message.answer(data)

async def commands_admin(message: types.Message, state: FSMContext):
    await state.update_data(command=message.text)

    if message.text == "add_category":
        await message.answer("При создании каталога, будет создана запись в таблице с каталогами и будет создана доп. таблица с доп. колонками")
        await message.answer("Напишите имя каталога")
        await state.set_state(FSMAdmin.name_product)

    elif message.text == "add_product":
        await message.answer("Имя продукта")
        await state.set_state(FSMAdmin.name_category)

    elif message.text == "del_product":
        pass

    elif message.text == "del_category":
        pass

    else:
        await message.answer("Нет такой команды")
        await state.clear()


async def finish(message: types.Message, state: FSMContext):
    current_state = await state.get_state()
    if current_state is None:
        return
    await state.clear()

def register_admin():
    form_router.message.register(finish, commands='отмена', state="*")
    form_router.message.register(command_admin, commands='admin', state=None)
    form_router.message.register(commands_admin, state=FSMAdmin)
    form_router.message.register(command_add_product_name, FSMAdmin.name_product) # не ловит
    form_router.message.register(command_add_product_discription, FSMAdmin.discription) # не ловит

    return form_router
  • Вопрос задан
  • 1055 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Mr-CEO
Не стою на месте.
Не правильно зарегистрированавы хендлеры.

@dp.message_handler(text='/start')
async def command_admin(message: types.Message):
await message.answer("Приветствую, админ, какую выполнить команду", reply_markup=клавиатуру)

Пример работы команды start
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы