Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
236 views
in Technique[技术] by (71.8m points)

python - how to modularize django settings.py?

When you install a new django application, you have to add/modify your settings.py module.

For a project I'm trying to make that module a python subpackage and create a module for each application:

settings
    __init__.py
    base.py
    admin.py
    feincms.py
    ...

The problem I'm confronted with is how to merge settings.py attributes (INSTALLED_APPS for example is a tuple of values) that are getting values in the different submodules?

Thanks


Ok, I asked the wrong question (got the right answer for it though). My question should have been, how to get attributes from all submodules and merge them? Django will import settings and expects everything to be there.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

"When you install a new django application, you have to add/modify your settings.py module."

I think this is fine as is.

I don't see any reason to change or modify this at all.

What we do, however, is to "subclass" the core settings module.

Our developer-specific and installation-specific files have names like settings_devxy_linux2 and settings_checkout_win32, etc.

Each of these files starts with from settings import * to import the core settings and extend those core settings with overrides for a specific installation and platform.

It doesn't require any real work. It does, however, mean that we do most things with django-admin.py because our settings aren't called settings.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...