Главное отрисовать html с меню и сохранить его в кэш.
Каждый раз при посещении пользователем страницы проверять есть ли закешированное меню для него, если нет генерируем, если есть выдаём из кэша.
В зависимости от времени жизни кэша, иногда какому-то пользователю придётся подождать генерацию меню, остальные будут получать меню быстро благодаря кэшу.
Ingernirated, Model это класс, описанный в модуле model и CharField тоже класс, описанный в этом же модуле.
Нет смысла описывать класс поля (CharField) в классе модели. Поэтому и не "выходит так" Model.CharField
Просто загляни в исходники django.
Вот, то, что находится в модуле django.db.models
Лучше всего Ubuntu или основанные на нём дистрибутивы такие как Mint, ElementaryOs и прочие. Так как в сети достаточно много описано решений именно под ubuntu.