Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка TypeError aiogram 3.18

Сигма . Ученик (91), на голосовании 2 недели назад
 @router.message(F.chat.type == 'private' & F.text == "⚙️ Админка" & u.AdminFilter()) 

При запуске выдаёт ошибку
 TypeError: unsupported operand type(s) for &: 'str' and 'AdminFilter' 
Как решить проблему?
Голосование за лучший ответ
B Mine Знаток (344) 1 месяц назад
Ты имбецил или что? Сказано, нельзя сравнить строку и админ фильтер
S.H.I. Оракул (73305) 1 месяц назад
Явно группируйте условия с помощью скобок, чтобы операции сложения выполнялись в нужном порядке:
 @router.message( 
(F.chat.type == 'private')
& (F.text == "⚙️ Админка")
& (u.AdminFilter())
)
async def admin_handler(message: Message):
# обработчик для админки
...
Альтернативно, вы можете передать несколько фильтров в декоратор через запятую. При этом aiogram объединит их логически через И:
 @router.message( 
F.chat.type == 'private',
F.text == "⚙️ Админка",
u.AdminFilter()
)
async def admin_handler(message: Message):
# обработчик для админки
...
Похожие вопросы