#does not trigger async callback in select menu
1 messages · Page 1 of 1 (latest)
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(...)
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)
remove the "select" parameter from your callback
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'```
as always, read the docs
Pycord
Models are classes that are received from Discord and are not meant to be created by the user of the library. Attributes key, url. Methods def is_animated, async read, def replace, async save, def ...
You need to make your select an attribute of your class so then you can access it with self
You should learn OOP