title: Python / Django multi-tenancy solution
body: <p>I could use some help creating a plan of attack for a project I'm working on.</p>
  
  <p>Imagine that the site is for a group that oversees regional sales offices, distributed around the world. The purpose of this project is to let superusers spin up a new sub-site specific to each and every office, at a fast pace -- sites are added on a frequent basis. The office sub-sites should be wholly contained with "admin" users specific to that sub-site and should be user-friendly CMS. A superuser should be able to step in and manage all of these office sub-sites.</p>
  
  <p>In addition to the self-contained office sub-site instance, there is also a need for each sub-site to manage contacts, leads, etc and store this in one central area for the superusers.</p>
  
  <p>I've done a few sites using Django, but never anything multi-tenant. I'd like suggestions for technologies to use or tutorials/documentation that might be helpful.</p>
  
  <p>Requirements:</p>
  
  <ol>
  <li>Each sub-site uses the same source (templates, JS, available features, etc), but can be modified to reflect custom content within the templates.</li>
  <li>Assigned subdomains (with an option of using a fully qualified domain) per sub-site, configured within the project, not in a hardcoded settings file.</li>
  <li>Sub-site specific user access controls, in addition to superusers who can access all sub-sites.</li>
  <li>The ability to provide an "independent" CMS for each sub-site. i.e., A sub-site admin only sees their content. My preference for this project would be django-cms, but I'm open to suggestions.</li>
  <li>Support for apps that pool the data from all the sub-sites, but limit sub-site "admins" to  only viewing their records into that app.</li>
  </ol>
  
  <p>Considering the above, what approach would you recommend? I am open to reconsidering technologies, but I would like to stick with Python.</p>