Не работают последующие хэндлеры, а выполняется только первый. Aiogram 3

Пишу бота helpdesk, но при нажатии любых кнопок выводится результат из хэндлера Просмотр заявок. В чем проблема?

async def get_contact(message: types.Message):
    contact = message.contact
    global user_contact
    global key_admin
    user_contact = str(contact.phone_number)
    if user_contact[:1] == '+':
        user_contact = user_contact[1:]
    if db_01.user_exist(user_contact):
        await message.answer("Добро пожаловать!", reply_markup=kb.function_keyboard())
        user_contact = str(contact.phone_number)
        key_admin = True
    else:
        await message.answer(f"Данного номера нет в базе сотрудников.")


@dp.message(lambda message: key_admin == True and F.text == 'Просмотр заявок')
async def view_report(message: types.Message):
    await message.answer(resultSelect)


@dp.message(lambda message: key_admin == True and F.text == 'Редактировать заявку')
async def edit_report(message: types.Message):
    await message.answer("Введите ID заявки:")
    request_id = message.text
    await message.answer("Что изменить:", reply_markup=kb.edit_keyboard())


@dp.message(lambda message: key_admin == True and F.text == 'Подать заявку')
async def new_report(message: types.Message):
    await message.answer("Здесь будет реализована функция подача заявки.")

Ответы (1 шт):

Автор решения: CausonQ

Если на хендлере несколько фильтров, нужно использовать не and, а указывать их через запятую.

У вас получается, что выполняется фильтр key_admin == True, а дальше проверка не идет. Соответственно, ввиду того, что всегда срабатывает первый хендлер, дальнейшая проверка не проводится.

На примере первого хендлер

@dp.message(lambda message: key_admin == True, F.text == 'Просмотр заявок')
async def view_report(message: types.Message):
    await message.answer(resultSelect)
→ Ссылка