0

我有一个 settings.py 文件,其中包含基本设置。然后我有一个 local_settings.py 文件,其中包含一些分析和测试应用程序,如 django_debug_toolbar 等,然后我有一个不同的 production_settings.py 文件,其中包含用于生产的数据库设置等。

我已将 local_settings.py 文件添加到我的 .gitignore 中,这样它就不会被推送到生产环境中。在我的 settings.py 文件中,我放了以下内容 -

try:
    from local_settings import *
    INSTALLED_APPS += LS_APPS
    MIDDLEWARE_CLASSES += LS_MIDDLEWARE_CLASSES
except ImportError:
    try:
        from production_settings import *
        INSTALLED_APPS += PROD_APPS
    except:
        pass

我在heroku上运行东西。问题是 production_settings 中的设置没有反映在生产服务器上,这是怎么回事?请帮忙,谢谢!

4

1 回答 1

0

在生产服务器local_settings中不存在,因此导入将失败。但是,当您尝试从production_settings您那里导入时,您只是忽略了引发的异常。导入时不要使用tryand 。我想知道是否引发了一些异常,这就是为什么这些更改没有得到反映。例如,我想到的一个例外可能是一个元组,但它是一个列表(反之亦然),因此元组与列表的连接将引发。exceptproduction_settingsINSTALLED_APPSsettings.pyPROD_APPSTypeError

更好的方法:

try:
    from local_settings import *
    INSTALLED_APPS += LS_APPS
    MIDDLEWARE_CLASSES += LS_MIDDLEWARE_CLASSES
except ImportError:
    from production_settings import *
    INSTALLED_APPS += PROD_APPS
于 2013-05-08T07:59:43.380 回答