2

How do I do that? split up 2 files?

TIMEX
  • 259,804
  • 351
  • 777
  • 1,080

5 Answers5

2

Just put it in any file you like and import it somewhere in your main settings file.

So you could set up new settings my_new_settings.py anywhere django can reach, and import it at the end of your real settings.py.

# settings.py
# ...
from my_new_settings import *
Yuji 'Tomita' Tomita
  • 115,817
  • 29
  • 282
  • 245
2

These pages might help: discussion on SO, discussion on djangoproject.com

Community
  • 1
  • 1
Elvis D'Souza
  • 2,273
  • 1
  • 23
  • 31
2

Although my solution is not as complex as the ones above, they fit my simple needs: I have some imports in my settings.py file:

try:
    from settings_local import *
except ImportError:
    pass

try:
    from settings_production import *
except ImportError:
    pass

And then I have a settings_local.py file in my local development folder (which I don't upload to the server) and where I overwrite local settings. Then I have a settings_production.py server where I keep settings needed for the production environment.

You can use this technique to import other settings files as well.

chris
  • 280
  • 1
  • 9
1

I'm not a pythonista, so my take might just be the most un-pythonic way to do this. Having said that, this is how I split the settings for our Django app:

Instead of a single settings.py file, we have settings/__init__py. It contains imports for all the settings sections, which are placed in the settings directory.

# settings/__init__.py
from .foo import *
from .bar import *

# settings/foo.py
FOO="test"

# settings/bar.py
BAR="quz"

From the perspective of the application, this is still the same old settings module; from yours, it's a clean structure of configuration data.

Moritz Friedrich
  • 1,371
  • 20
  • 38
0

Create new_settings.py file to contain part of settings.py, and import that file wherever you need it.

Eugene Yarmash
  • 142,882
  • 41
  • 325
  • 378
Mohammad Efazati
  • 4,812
  • 2
  • 35
  • 50