Как добавлять кнопки в клавиатуру в зависимости от данных из базы данных? Aiogram
Пишу реферального бота, встал вопрос о добавлении динамических кнопок(которые меняются в зависимости от того, сколько групп зарегистрировано в базе данных) и никак не могу понять как их добавлять.
Из базы данных я получаю вот такие данные {'Group name': 14314, '543': 53453}
async def add_buttons():
count = await DB.get_groups_count()
for _ in range(count):
data = await DB.get_groups()
print(data)
btn_text = data[0]
btn_callback = data[1]
keyboard = types.InlineKeyboardMarkup(row_width=1)
keyboard.add(types.InlineKeyboardButton(text=btn_text, url=btn_callback),
types.InlineKeyboardButton(text=btn_text, url=btn_callback))
return keyboard
вот такой код я пытался сделать, но не понимаю как запускать в зависимости от количества групп в базе данных
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
Aiogram и вообще разработка Telegram-ботов тут не при чём, вы неправильно проходитесь по циклу, нужно так:
for group in await DB.get_groups():
btn_text = group[0] # Group name
btn_callback = group[1] # 14314
keyboard = types.InlineKeyboardMarkup(row_width=1)
keyboard.add(types.InlineKeyboardButton(text=btn_text, url=btn_callback),
types.InlineKeyboardButton(text=btn_text, url=btn_callback))
return keyboard