You need to enable JavaScript to run this app. Discord.py 分配用户角色时出现'User'无guild、Member获取为None的报错问题
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.05 07:36:02