43T*_*cts 8 python django django-apps django-settings
我有 3 个设置文件:
base.py 有:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes'
...
Run Code Online (Sandbox Code Playgroud)
但是我有一些只需要在我的开发环境中使用的应用程序,例如,debug-toolbar.
我在 development.py 中试过这个:
INSTALLED_APPS += (
'debug_toolbar',
)
Run Code Online (Sandbox Code Playgroud)
但得到错误: NameError: name 'INSTALLED_APPS' is not defined
设置文件的连接方式如下:
__init__.py
from .base import *
try:
from .production import *
except:
from .development import *
Run Code Online (Sandbox Code Playgroud)
如何区分我的生产/开发环境之间已安装的应用程序?
我自己处理了这个问题,我是这样破解的:
base.py(我的是settings.py)
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes'
... )
# rest of settings.py variables ...
def _add_installed_app(app_name):
global INSTALLED_APPS
installed_apps = list(INSTALLED_APPS)
installed_apps.append(app_name)
INSTALLED_APPS = tuple(installed_apps)
ADD_INSTALLED_APP = _add_installed_app
Run Code Online (Sandbox Code Playgroud)
development.py (我的是settings_debug.py)
from base import *
ADD_INSTALLED_APP('debug_toolbar')
Run Code Online (Sandbox Code Playgroud)
生产.py
from base import *
Run Code Online (Sandbox Code Playgroud)
小智 5
我只是在我的 settings.py 中测试 DEBUG(假设在生产 DEBUG == FALSE)并添加应用程序:
# settings.py
if DEBUG:
INSTALLED_APPS += (
# Dev extensions
'django_extensions',
'debug_toolbar',
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1475 次 |
| 最近记录: |