Как очистить данные внутри 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)