Вообще Django - это не CMS, а фреймворк. Поэтому сравнивать с Drupal/Wp и т.п. - неуместно. Но ничего тебе не мешает запилить эту логику самостоятельно. Создай модельки themes и themes_templates: в первой у тебя будут храниться темы, а во второй - пути к шаблонам для них. Можно вместо путей к файлам хранить и сами шаблоны текстом - тоже прокатит. Но это не очень "красивое" решение, я считаю.
В themes_templates сделай поле type, в котором будет храниться тип шаблона, который будет указывать, для чего конкретно шаблон. В themes сделай поле is_active, которое будет указывать, какая тема активна в текущий момент. Во view, где у тебя указывается, какой шаблон рендерить, ходи в базу и вытаскивай нужный путь к шаблону (ну или его контент, если решил в базе в виде текста хранить) в зависимости от активной темы (themes.is_active = True) и типа шаблона (у каждой страницы свой тип шаблона).