Пытался сделать inline кнопки на aiogram но выдёт ошибку
Непонимаю в чём ошибка,Буду благодарен всем кто поможет с кодом
Вот часть кода
async def cmd_inline_url(message: types.Message):
keyboard1 = types.InlineKeyboardMarkup()
keyboard1.add(types.InlineKeyboardButton(text="Номер", callback_data="num1"))
keyboard2 = types.InlineKeyboardMarkup()
keyboard2.add(types.InlineKeyboardButton(text="Номер", callback_data="num2"))
keyboard3 = types.InlineKeyboardMarkup()
keyboard3.add(types.InlineKeyboardButton(text="Номер", callback_data="num3"))
keyboard4 = types.InlineKeyboardMarkup()
keyboard4.add(types.InlineKeyboardButton(text="Номер", callback_data="num4"))
keyboard5 = types.InlineKeyboardMarkup()
keyboard5.add(types.InlineKeyboardButton(text="Номер", callback_data="num5"))
*и так до 34|and so on until 34*
keyboards = [keyboard1, keyboard2, keyboard3, keyboard4, keyboard5, keyboard6, keyboard7, keyboard8, keyboard9, keyboard10, keyboard11, keyboard12, keyboard13, keyboard14, keyboard15, keyboard16, keyboard17, keyboard18, keyboard19, keyboard20, keyboard21, keyboard22, keyboard23, keyboard24, keyboard25, keyboard26, keyboard27, keyboard28, keyboard29, keyboard30,keyboard31, keyboard32, keyboard33, keyboard34]
await message.answer("Номера", reply_markup=keyboards)
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
Вместо того, чтобы создать одну клавиатуру и назначить ей кнопки, вы создаёте 34 клавиатур по одной кнопке в каждой - это в корне неправильная логика. Всю Вашу задачу можно уместить в несколько строчек кода:
async def cmd_inline_url(message: types.Message):
keyboard = types.InlineKeyboardMarkup()
for i in range(1, 35):
keyboard.add(types.InlineKeyboardButton(text=f"Номер {i}", callback_data=f"num{i}"))
await message.answer("Номера", reply_markup=keyboard)