【发布时间】:2016-11-10 05:11:17
【问题描述】:
我有 3 个设置文件:
- base.py(共享)
- 开发.py
- 生产.py
base.py 有:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes'
...
但我有一些只需要在我的开发环境中使用的应用程序,例如debug-toolbar。
我在 development.py 中试过这个:
INSTALLED_APPS += (
'debug_toolbar',
)
但得到错误:NameError: name 'INSTALLED_APPS' is not defined
设置文件是这样连接的:
__init__.py
from .base import *
try:
from .production import *
except:
from .development import *
如何区分我的生产/开发环境中安装的应用程序?
【问题讨论】:
-
显示完整的回溯
-
Dev 在您的情况下没有“看到”基础。您的代码需要在 init 中。或重组。但是导入的模块 (dev) 不会从导入模块 (init) 继承命名空间,而导入模块 (init) 恰好从 base 引入已安装的应用程序。所以...已安装的应用程序无处可见。很抱歉大写和下划线错误输入(在平板电脑键盘上),但这是这里的核心问题。
-
当您需要访问基本或生产
DJANGO_SETTINGS_MODULE=project_name.settings.production和生产.py 中from .base import *的设置并覆盖任何需要更改的设置时,您不需要包级导入。
标签: python django django-settings django-apps