Django的docs文档中说,我可以调用
我想这样做的原因是
我设想的情况如下。让我们称我的应用程序为“rexe_app”。在wsgi.py中,我的应用程序用户将执行以下操作:
settings.configure
而不是使用DJANGO_SETTINGS_MODULE
。我希望我的网站项目也能这样做。我应该把settings.configure
放在哪个文件中,以便在正确的时间配置我的设置?
编辑:回应Daniel Roseman的评论:我想这样做的原因是
settings.configure
允许您将设置变量作为kwargs字典传递,例如:{'INSTALLED_APPS':...,'TEMPLATE_DIRS':...,...}
。这将允许我的应用程序用户在字典中指定其设置,然后将该字典传递给我的应用程序中的一个函数,该函数会增加某些必要的设置以使我的应用程序工作,例如添加条目到INSTALLED_APPS
。我设想的情况如下。让我们称我的应用程序为“rexe_app”。在wsgi.py中,我的应用程序用户将执行以下操作:
import rexe_app
my_settings = {'INSTALLED_APPS': ('a','b'), ...}
updated_settings = rexe_app.augment_settings(my_settings)
# now updated_settings is {'INSTALLED_APPS': ('a','b','c'), 'SESSION_SAVE_EVERY_REQUEST': True, ...}
settings.configure(**updated_settings)
from rexe_app.default_settings import *
和INSTALLED_APPS += ('a', 'b')
呢? - alkoINSTALLED_APPS
,或者修改其他设置,比如TEMPLATE_DIRS
,我需要告诉所有用户在他们的设置文件中更改它。我的用户希望能够自动和隐形地处理这些更新。 - RexErexe_app.default_settings
中的INSTALLED_APPS
中添加新的应用程序,并使用+=
运算符处理即可。然后你的用户只需运行pip install rexe_app upgrade
即可完成升级。 - alkoINSTALLED_APPS += ('a', 'b')
应该放在用户的项目设置文件中,还是rexe_app.default_settings
?我很确定两种方式都不起作用。rexe_app.default_settings
无法读取用户的INSTALLED_APPS
以进行追加。 - RexE