Решал пару подобных задач на ruby on rails + passenger, для одной из них было создано грубо говоря 5 rails приложений размещенных на одном сервере (у каждого свой домен), одно из них было "главным" сайтом с личным кабинетом из которого происходило обновление контента на других 4 сайтах, суть была такая: все взаимодействия происходили по API, какие-либо изменения отслеживались с помощью websocket (необходимо было в реальном времени мониторить все активности). Это, если в кратце. Думаю на django построить подобную архитектуру не составит труда. Для другой задачи, необходимо было построить веб-приложение на одном домене, но должен был быть функционал создания n-го кол-ва "отдельных" сайтов с общим личным кабинетом. В этом случае задача была решена с помощью маршрутизации (routes), грубо говоря:
//это был роут на основной сайт
scope module: :mainClient do
root to: 'index#home'
end
//роуты на остальные "подсайты"
namespace :subSite_1 do
root to: 'index#home'
end
namespace :subSite_2 do
root to: 'index#home'
end
в данном случае, каждый "подсайт" включая "главный" имели свои view, style, script. На django не писал но думаю логика от этого сильно не поменяется.