Как разместить клавиатуру в два столбца (формируется автоматически)

Как разместить клавиатуру в два столбца (или в три), если она формируется автоматически из базы даних?

Есть функция и запрос

К примеру, у пользователя в базе 8 значений (текст) клавиатуры (у каждого пользователя могут бить розные значения). То есть по запросу он выводит (teachers_keyboard.row(teachers)) все в один столбец.

Функция:

elif message.text == KEYBOARD['TEACHER_SECH_TEACHER']:
    if not core.get_user_saved_teachers(message.chat.id):
        msg = 'текст1.'
        sent = bot.send_message(message.chat.id, msg)
        bot.register_next_step_handler(sent, grupa_sech_teacher_week)
    else:
        teachers_keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
        for teachers in core.get_user_saved_teachers(message.chat.id):
            msg = "текст2"
        
            teachers_keyboard.row(teachers)

        teachers_keyboard.row(KEYBOARD['TEACHER_CANCEL'])
        sent = bot.send_message(message.chat.id, msg, reply_markup=teachers_keyboard)
        bot.register_next_step_handler(sent, teacher_sech_teacher_week)

Запрос:

def get_user_saved_teachers(user_id):

    query = """SELECT teacher_name FROM saved_teachers WHERE telegram_id = ? ORDER BY added_time"""

    saved_teachers_raw = DBManager.execute_sql(query, (user_id,)) or []

    saved_teachers = []

    for teacher in saved_teachers_raw:
        saved_teachers.append(teacher[0])

    return saved_teachers

Ответы (1 шт):

Автор решения: Egorov Egor

подсчитав сколько элементов тебе вернёт бд можно рассчитать количество строк клавиатуры и добавлять их списком в teachers_keyboard

→ Ссылка