You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Py-Cord Discord机器人创建工单频道时触发AttributeError错误

错误原因与解决方案

问题分析

报错AttributeError: 'int' object has no attribute 'id'来自两处核心错误:

  1. 权限覆盖的角色类型错误:supportRole = config.support_role_id直接使用了整数ID,但PermissionOverwrite的键必须是discord.Role或discord.Member对象,而非纯ID数值。
  2. 分类参数类型不匹配:create_text_channel的category参数传入了字符串"tickets",但该参数要求传入discord.CategoryChannel对象,不是分类名称字符串。

修正后的代码

class MyView(discord.ui.View):
    @discord.ui.button(label="Create Ticket", style=discord.ButtonStyle.primary, emoji="🎫")
    async def button_callback(self, button, interaction : discord.Interaction):
        # 把角色ID转换为Role对象
        support_role = interaction.guild.get_role(config.support_role_id)
        if not support_role:
            await interaction.response.send_message("支持角色不存在!", ephemeral=True)
            return
        
        # 获取tickets分类的对象
        ticket_category = discord.utils.get(interaction.guild.categories, name="tickets")
        if not ticket_category:
            await interaction.response.send_message("tickets分类不存在!", ephemeral=True)
            return
        
        # 构建权限覆盖规则(确保键为对象而非ID)
        overwrite = {
            interaction.guild.default_role: discord.PermissionOverwrite(view_channel=False),
            support_role: discord.PermissionOverwrite(view_channel=True, read_messages=True, send_messages=True, add_reactions=True),
            interaction.user: discord.PermissionOverwrite(view_channel=True, read_messages=True, send_messages=True)  # 必须给创建者添加权限,否则无法访问
        }
        
        ticket_creator = interaction.user.display_name
        # 使用正确的分类对象创建频道
        await interaction.guild.create_text_channel(
            f"{ticket_creator} ticket",
            category=ticket_category,
            overwrites=overwrite
        )
        await interaction.response.send_message("工单频道已创建!", ephemeral=True)

额外补充

  • 新增了角色和分类的存在性检查,避免因资源缺失导致后续异常。
  • 添加了工单创建者的频道权限,否则创建者自身无法访问新建的工单频道。
  • 使用ephemeral=True发送提示,只有点击按钮的用户能看到,避免刷屏。

内容的提问来源于stack exchange,提问作者Knife worm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:22:20