Как очистить данные внутри inline клавиатуры?

Клавиатура добавляет в себя столько кнопок сколько имен в бд sqlite при вызове функции. Не могу найти метод для aiogram который очищал бы клавиатуру перед наполнением. Как это делает в листах .clear()

async def set_kb():
    await (p := gather(db_show_players()))
    for i in p.result()[0]:
        in_group_kb_players.add(InlineKeyboardButton(text="?"+str(i[0]), callback_data=i[1]))

Сейчас если вызвать функцию несколько раз она будем дублировать кнопки (.clean() не работает)


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

Автор решения: oleksandrigo

Нет такого метода который очищает маркап. Единственное что вы можете сделать это нормально создать новый маркап и изменить сообщение с помощью edit_reply_markup

@dp.callback_query_handler()
async def sad(call: types.CallbackQuery):
    await call.answer()
    markup = InlineKeyboardMarkup()
    for button in [...]:
        markup.add(InlineKeyboardButton(text=f"? {button[0]}", callback_data=button[1]))
    await call.message.edit_reply_markup(reply_markup=markup)
→ Ссылка