Aiogram多Router连接异常:仅handlers路由生效问题求助
解决Aiogram中仅单个Router生效的问题
问题根源
你的admin.py代码里存在两处致命错误,导致router1无法正常加载:
- Router方法名错误:调用了不存在的
include_router1方法,正确方法名是include_router - 路由引用错误:handlers.py中定义的路由是
router2,不是router1 - 冗余路由包含:main.py已经将两个路由注册到Dispatcher中,admin.py重复包含handlers的路由完全没必要,反而会引发加载异常
修复步骤
1. 修正admin.py代码
删除错误的路由包含语句,确保路由装饰器正确绑定到router1:
from aiogram import F, Router, Bot from aiogram.types import Message, CallbackQuery from aiogram.filters import Command import kb import config import text admin_flag = False user_id = None router1 = Router() @router1.message(Command("admin")) async def admin_handler(msg: Message): global user_id user_id = int(msg.from_user.id) if user_id in config.admins: await msg.answer(text.greet_admin, reply_markup=kb.admin_main_menu_kb)
2. 验证权限配置
确认config.admins列表中包含你测试用的用户ID,避免因权限判断导致/admin命令无响应。
3. 全局变量优化(可选)
Aiogram中不推荐使用全局变量存储用户状态,建议改用FSM上下文替代,不过这不是当前路由失效的直接原因。
验证修复
重新运行main.py,测试/start和/admin命令,两个路由即可正常响应。
内容的提问来源于stack exchange,提问作者upuzipu
相关产品推荐
相关产品推荐

