这与这个问题有些关联:
为什么 Django 的 settings 对象是一个 LazyObject?
在我的 Django 项目中,我有几个应用程序。每个应用程序都可以有自己的复杂设置文件。
proj/
proj/
settings.py
app/
settings.py
views.py
这里的通用最佳做法是什么?
app/settings.py 应该怎么做?
from django.conf import settings
APP_SETTING= lambda: settings.getattr('APP_SETTING', 'custom_value')
PROJ_SETTING= lambda: settings.PROJ_SETTING
然后在 app/views.py 中执行
import .settings
X = settings.APP_SETTING
Y = settings.PROJ_SETTING
我应该按照 Django 编码风格修改 app/settings.py 中的 Django lazy settings 对象吗?
from django.conf import settings
# not even sure how I would check for a default value that was specified in proj/settings.py
settings.configure(APP_SETTING='custom_value')
然后每个应用程序/ views.py 通过django.conf设置仅使用proj/settings.py,对吗?
from django.conf import settings
X = settings.APP_SETTING
Y = settings.PROJ_SETTING
显然还有很多其他的组合方式,但我认为我的意图很清楚。
提前感谢。