Как настроить коллбэк хендлер для n количества инлайн кнопок?
Имеется база данных с задачами (простой ToDo бот), из нее запрашиваются все задачи, чтобы выбрать для удаления
c.execute('SELECT * FROM tasks')
for i in c.fetchall():
if counter % 3 == 0:
kb2.add(InlineKeyboardButton(text=counter, callback_data=counter))
else:
kb2.insert(InlineKeyboardButton(text=counter, callback_data=counter))
counter += 1
появляются все кнопки, но я не знаю, как настроить для каждой Каллбэк хендлер
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
Сделайте префикс для колбек даты, и отлавливайте его
@dp.message_handler(commands=['start'])
async def start(msg: types.Message):
markup = InlineKeyboardMarkup().add(
InlineKeyboardButton("text", callback_data="prefix_name:data1"),
InlineKeyboardButton("text", callback_data="prefix_name:data2"),
)
await msg.answer("text", reply_markup=markup)
@dp.callback_query_handler(text_startswith="prefix_name:")
async def get_callback_with_prefix_name(call: types.CallbackQuery):
data = call.data.split(":")[1]