#does not trigger async callback in select menu

1 messages · Page 1 of 1 (latest)

jolly delta
#

you never assigned the callback

#

normally in a View subclass, you should use the @select decorator

#

but add_item is also a valid method, you're just missing a bit; simply assign select.callback py select = discord.ui.Select(...) select.callback = self.select_callback self.add_item(...)

round jay
#

error

Ignoring exception in view <DisconnectSelect timeout=180.0 children=1> for item <Select type=<ComponentType.string_select: 3> placeholder='Выберите участника для отключения' min_values=1 max_values=1 options=[<SelectOption label='n3core' value='343985607459995669' description=None emoji=None default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
  File "C:\Users\n3core\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\discord\ui\view.py", line 426, in _scheduled_task
    await item.callback(interaction)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: DisconnectSelect.select_callback() missing 1 required positional argument: 'interaction'
class DisconnectSelect(discord.ui.View):
    def __init__(self, options):
        super().__init__()

        select = discord.ui.Select(
            placeholder="Выберите участника для отключения",
            min_values=1,
            max_values=1,
            options=options
        )
        select.callback = self.select_callback  # Assigning the callback
        self.add_item(select)

    async def select_callback(self, select, interaction):  
        selected_member_id = int(select.values[0])
        selected_member = interaction.guild.get_member(selected_member_id)
        await selected_member.move_to(None)
        await interaction.response.send_message(f"{selected_member.mention} был отключен от канала.", ephemeral=True)
prisma kraken
#

remove the "select" parameter from your callback

round jay
#
    async def select_callback(self, interaction):  
        selected_member_id = int(select.values[0])
        selected_member = interaction.guild.get_member(selected_member_id)
        await selected_member.move_to(None)
        await interaction.response.send_message(f"{selected_member.mention} был отключен от канала.", ephemeral=True)

error

Traceback (most recent call last):
  File "C:\Users\n3core\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\discord\ui\view.py", line 426, in _scheduled_task
    await item.callback(interaction)
  File "D:\DragonProject\New\bot.py", line 94, in select_callback
    selected_member_id = int(select.values[0])
                             ^^^^^^
NameError: name 'select' is not defined. Did you forget to import 'select'```
prisma kraken
#

as always, read the docs

vivid perch
#

You should learn OOP