Organizing settings in Django
我正在Django项目中工作,该项目使用在项目根目录中的几个"设置"文件中指定的几十个配置变量:
1 2 3 4 5 6 7 | --> myproject ------> app folders ------> ... --- settings.py --- settings_global.py --- settings_production.py --- settings_development.py |
然后,根据某些运行时参数(主机名等),将来自不同设置文件的变量导入到settings.py文件中。这一切工作得相当好,但有时仍然很难找到某个变量,因此我想重新组织设置变量,并将其分为几个类别:
- 项目特定变量
- Django特定变量
- 已安装的应用程序特定变量(如Django_压缩机的设置等)
- 环境特定变量(生产/开发)
我还想将除settings.py文件以外的所有设置文件移动到settings子目录:
1 2 3 4 5 6 7 8 9 10 11 | --> myproject ------> app folders ------> ... ------> settings ---------- __init__.py ---------- common.py ---------- production.py ---------- development.py ---------- apps.py ---------- ... --- settings.py |
我已经创建了settings子目录(以及空的
1 2 | from settings.common import * from settings.apps import * |
但是,我得到以下错误(即使SETTINGS/common.py文件中存在根目录urlconf):
1 | AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF' |
我做错什么了?
我认为settings.py模块和settings包之间存在名称冲突,请尝试将该包重命名为其他名称。