pythondjangodeployment

How to manage local vs production settings in Django?


What is the recommended way of handling settings for local development and the production server? Some of them (like constants, etc) can be changed/accessed in both, but some of them (like paths to static files) need to remain different, and hence should not be overwritten every time the new code is deployed.

Currently, I am adding all constants to settings.py. But every time I change some constant locally, I have to copy it to the production server and edit the file for production specific changes... :(

Edit: looks like there is no standard answer to this question, I've accepted the most popular method.


Solution

  • In settings.py:

    try:
        from local_settings import *
    except ImportError as e:
        pass
    

    You can override what needed in local_settings.py; it should stay out of your version control then. But since you mention copying I'm guessing you use none ;)