Discord.py 分配用户角色时出现'User'无guild、Member获取为None的报错问题
Discord 机器人角色分配功能异常排查诉求
- 项目开发目标:搭建Discord机器人,核心能力为给用户分配指定角色,使用户能够查看自身关联的封禁相关信息。
- 当前开发状态:除角色分配环节外,其余功能均可正常运行;已在各类技术论坛、Reddit平台、官方文档中查阅相关解决方案,所有尝试过的方案均无法解决问题。
现有代码片段
role = await message.guild.create_role(name=ban_str) category = discord.utils.get(message.guild.categories, name="Tickets") overwrites = { message.guild.me: discord.PermissionOverwrite(read_messages=True), message.guild.default_role: discord.PermissionOverwrite(read_messages=False), role: discord.PermissionOverwrite(read_messages=True, send_messages=False) } channel = await message.guild.create_text_channel(banstr, category=category, overwrites=overwrites) user = client.get_user(int(user_id)) await discord.Member.add_roles(user, role, reason="[Ban Ticket] Added user to ticket " + banstr)
报错记录
- 运行初始代码报错:
AttributeError: 'User' object has no attribute 'guild' - 针对上述报错做的调整:将代码中的
user = client.get_user(int(user_id))替换为user = message.guild.get_member(int(user_id)),调整后出现新报错:AttributeError: 'NoneType' object has no attribute '_state'
希望能定位代码中存在的问题,解决角色分配环节的功能异常。
内容的提问来源于stack exchange,提问作者Ethan
相关产品推荐
相关产品推荐

