Как удалять сообщение вызванное нажатием inline - клавиатурой
Вопрос состоит в том, как удалять сообщение которое появилось после нажатия инлайн - кнопки . У меня есть список товаров, и после нажатия на кнопку появляется информация о товаре. Как сделать так, чтобы после нажатие на второй товар, информация(сообщение) о первом товаре исчезала.
Пример кода
Хэндлер где появляется клавиатура.
@dp.message_handler(text="...")
async def account(message: types.Message):
await bot.send_message(
message.from_user.id,
f"text",
reply_markup=genmarkup(data),
)
Динамическая генерация кнопок в клавиатуре
def genmarkup(data):
markup = InlineKeyboardMarkup()
markup.row_width = 2
for key in data:
markup_1.add(
types.InlineKeyboardButton(
text=f"text {str(key[1])}",
callback_data="['text', '" + str(key[1]) + "', '" + str(key[1]) + "']",
),
)
return markup
Хэндлер обрабатывающий callback
@dp.callback_query_handler(text_startswith="['text'")
async def callback_1(callback: types.CallbackQuery):
valueFromCallBack = ast.literal_eval(callback.data)[1]
await bot.send_message(
callback.from_user.id, f" text {valueFromCallBack} "
)
await bot.send_message(callback.from_user.id, "text", reply_markup=dell)
Пробовал методы await bot.delete_message(chat_id=callback.from_user.id, message_id=callback.message.message_id) и await bot.edit_message_text()
Может я правильно мыслю, но как правильно реализовать не могу понять.
Для наглядного примера цепляю скрин
Чтобы после нажатия на кнопку "text 330708" удалялось сообщение "text 333225" и так по кругу.
UPD
Получается менять только сообщение которое отправляется повторно. Как заменять сообщение которое уже было отправлено не могу понять.
dp.callback_query_handler(text_startswith="['text'")
async def callback_1(callback: types.CallbackQuery):
valueFromCallBack = ast.literal_eval(callback.data)[1]
await bot.send_message(
callback.from_user.id, f" text {valueFromCallBack} "
)
a = await bot.send_message(callback.from_user.id, "text", reply_markup=dell)
await callback.bot.edit_message_text(text='Текст', chat_id=callback.message.chat.id, message_id=a.message_id)
