如何解决此问题:AttributeError:“Interaction”对象没有属性“custom_id”

问题描述 投票:0回答:1

我确切地知道问题是什么,但我不明白如何假设我需要的按钮完全像那样被按下。我使用了“custom_id”参数,但我不知道如何在“on_interaction”中统计和检查这个参数。

我会告诉你一些关于代码的信息,我正在创建一个用于发送请求的表单,但我遇到了一个问题,即过了一会儿按钮本身就停止工作了。我在这个平台上搜索了解决方案,按照要求做了,但遇到了一个新问题,“interaction”参数没有“custom_id”属性/参数。现在我不知道如何统计“on_interaction”中的按钮点击

@bot.hybrid_command(description='Form')
@commands.has_permissions(administrator=True)
async def req_form(ctx):
    global green
    button = discord.ui.Button(label='Отправить Реквест', style=discord.ButtonStyle.green, custom_id='req')
    embed = discord.Embed(title='Отправка реквестов',
                          description= 'Тут вы можете отправить ваш уровень нашему модератору, а тот перекинет уровень GD-модераторам на оценку!\n```Правила реквестов```\n- Ваш уровень должен соответствовать как правилам проекта, так и правилам игры\n- Нельзя пользоватся данной системой не в серьёз. За ложный реквест вы получите наказание, а позже и блокировку доступа к системе!\n- Вы получите такое-же наказание как и за прошлый пункт, если вы отправите в анкете рофл-уровень!\n- Не используйте систему чрезмерно часто!',
                          color=green)
    embed.set_image(url='https://cdn.discordapp.com/attachments/1051774366758735902/1236724216712134706/REQ-05-05-2024_1.png?ex=66390cae&is=6637bb2e&hm=28ad7939dafe85e3ba606c3b09178e375438f12060eb7de8f4cfda4eb0eebed6&')
    view = discord.ui.View(button)
    await ctx.reply(embed=embed, view=view)

@bot.event
async def on_interaction(interaction: discord.Interaction):
    async def give_req_form(interaction: discord.Interaction):
        modal = ReqQuestion()
        await interaction.response.send_modal(modal) # make a code...
        await modal.wait()
    
    if interaction.custom_id == 'req':
        await give_req_form(interaction)

我正在检查参数

python discord discord.py pycord
1个回答
0
投票

Interaction 对象没有

custom_id
属性。我认为您实际上想要获取与该交互相关的项目的 id。你可以尝试这样的事情:

item_id = interaction.data.get("custom_id")
if item_id == "req":
    await give_req_form(interaction)
© www.soinside.com 2019 - 2024. All rights reserved.