Тимур Калимуллин: мне навскидку сложно сказать все ли правильно. Вроде, похоже на правду.
Если все работает, значит, вы все верно сделали :) если нет - обратно в документацию.
Hitsuzen: у вас какие-то несемантические названия таблиц и колонок - из названий неясно что за данные в них хранятся. Ответ я обновил, ответил так, как понял задачу.
hardwellZero: я ничего не предлагаю удалять. Релевантные теги полезны и вам, потому что больше вероятность, что в вопрос зайдет именно django-специалист и сообществу, потому что в ленте не будет мусора.
hardwellZero: Люди, которые занимаются веб-разработкой, но не знают Питон вам ничем помочь не смогут. Те, кто знает Питон, но не знает Джанго - аналогично.
ermilovroman: вы про ограничение количества страниц? Да, так будет работать. Только мой внутренний параноик поставил бы >= 2, а не ==. Ну и первые два условия лучше разбить на отдельные if для читаемости, а $pageid++ оставить на последней строке цикла без всяких условий.
P.S. Делать echo внутри таких функций - дурная практика, лучше вернуть значение.
Это очень плохая практика, поскольку нарушается абстракция и код становится сложночитаемым. Не нужно притворяться компилятором, нужно писать выразительные алгоритмы.
Если все работает, значит, вы все верно сделали :) если нет - обратно в документацию.