安装新的django应用程序时,必须添加/修改settings.py模块.
对于一个项目,我试图使该模块成为python子包并为每个应用程序创建一个模块:
settings\
__init__.py
base.py
admin.py
feincms.py
...
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是如何合并settings.py属性(例如INSTALLED_APPS是值的元组),它们在不同的子模块中获取值?
谢谢
好吧,我问错了问题(尽管得到了正确答案).我的问题应该是,如何从所有子模块获取属性并合并它们?Django将导入设置并期望一切都在那里.
"安装新的django应用程序时,必须添加/修改settings.py模块."
我觉得这很好.
我认为没有任何理由可以改变或修改它.
然而,我们所做的是"子类化"核心设置模块.
我们的特定于开发人员和特定于安装的文件具有类似settings_devxy_linux2和settings_checkout_win32等的名称.
这些文件中的每一个都从from settings import *导入核心设置开始,并扩展这些核心设置,并覆盖特定的安装和平台.
它不需要任何实际工作.但是,它确实意味着我们做了大部分事情,django-admin.py因为我们的设置没有被调用settings.
我使用了这种解决方法:
settings.py:
INSTALLED_APPS = ('whatever',)
import more_settings
more_settings.modify(globals())
Run Code Online (Sandbox Code Playgroud)
more_settings.py:
def modify(settings):
settings['INSTALLED_APPS'] += ('another_app',)
Run Code Online (Sandbox Code Playgroud)