djangodjango-sites

How to locally test Django's Sites Framework


Django has the sites framework to support multiple web site hosting from a single Django installation.

EDIT (below is an incorrect assumption of the system)


I understand that middleware sets the settings.SITE_ID value based on a lookup/cache of the request domain.


ENDEDIT

But when testing locally, I'm at http://127.0.0.1:8000/, not http://my-actual-domain.com/

How do I locally view my different sites during development?


Solution

  • Create a separate settings.py file for every site, including an appropriate SITE_ID setting. Of course you can use the import statement to share common setting between files.

    From now on, when running Django development server specify the --settings option to tell Django which site to run.

    For example (assuming you've got two setting files - settings_first.py and settings_second.py):

    manage.py runserver --settings settings_first
    

    will run the first site, and

    manage.py runserver --settings settings_second
    

    will give you an access to the second site.

    You can also run them simultaneously, specifying different ports:

    manage.py runserver 8001 --settings settings_first
    
    manage.py runserver 8002 --settings settings_second
    

    The above commands (run on two different consoles) will make the first website accesible under http://127.0.0.1:8001/, and the second one under http://127.0.0.1:8002/