Можно ли как-то отключить Select menu discord.py, когда был выбран элемент

Селект меню

class Select_Menu(discord.ui.Select):
    def __init__(self, variants, custom_id):
        options = [discord.SelectOption(label=el) for el in variants]
        super().__init__(placeholder="Выберите шаблон", max_values=1, min_values=1, options=options)
    
    async def callback(self, interaction: discord.Interaction):
        # self.disabled = True не работает
        await interaction.respond(f"Вы выбрали {self.values[0]}", delete_after=3)

Сама слэш-команда

@bot.command()
async def flavor(ctx: discord.ApplicationContext):
    
    check_user(ctx) # Проверка на наличие в БД
    patterns = check_patterns(ctx) # Проверка на наличие в БД и получение данных
    view = discord.ui.View(timeout=None)
    
    if len(patterns) == 0:
        await ctx.respond("Вам нужно создать шаблон(ы) -> **/create_pattern**", delete_after=5)
    else:
        select = Select_Menu(patterns, "patterns")
        view.add_item(select)
        await ctx.respond(view=view)

Cуть в том, что я хочу сделать так, чтобы я мог дальше создавать эти селекты в слэш команде по очереди, сначала с одиними данными (1), потом с другими (2), которые опираются на данные из предыдущего селекта, но мне надо, чтобы предыдущий селект становился нерабочим, после выбора в нем значения.

ПОЯСНЕНИЕ

Вызывается команда, появляется первый селект:

  1. выбираются значения
  2. первый селект становится неактивным

появляется второй селект:

  1. данные отображаются в зависимости от выбора в первом селекте
  2. второй селект становится неактивным и тд

Ответы (1 шт):

Автор решения: Никита
class View(discord.ui.View):
    @discord.ui.select(placeholder="Выберите шаблон", max_values=1, min_values=1)
    async def select_callback(self, select, interaction):
        select.disabled = True # set the status of the select as disabled
        select.placeholder = select.values[0]
        await interaction.response.edit_message(view=self)
@bot.command()
async def flavor(ctx: discord.ApplicationContext):
    
    check_user(ctx)
    patterns = check_patterns(ctx)
    
    if len(patterns) == 0:
        await ctx.respond("Вам нужно создать шаблон(ы) -> **/create_pattern**", delete_after=5)
    else:
        view = View() # Сначала создаю View
        view.children[0].options = [discord.SelectOption(label=el) for el in patterns] # Потом вручную добавляю параметр options
        await ctx.response.send_message(view=view)

Вот так работает отключение View

→ Ссылка