对于 Django 本身,设置大多具有默认值,在django.conf.global_settings
.
第三方应用程序应该做什么?(理想情况下,为什么?)
修改
django.conf.global_settings
?(简要介绍一下django/conf/__init__.py
这不起作用,Settings
因为一旦访问设置,值就会被加载到对象中,这显然会在加载第三方应用程序之前发生。)修改
settings
例如中的对象myapp/__init__.py
?if not hasattr(django.conf.settings, 'MY_SETTING'): django.conf.settings.MY_SETTING = 'default'
有一个单独的模块,例如
myapp.conf
,它静态地获取值?MY_SETTING = getattr(django.conf.settings, 'MY_SETTING', 'default')
有一个单独的模块,例如
myapp.conf
,它提供了获取值的函数?def my_setting(): return getattr(django.conf.settings, 'MY_SETTING', 'default')
像 3 或 4 之类的东西,但不在单独的模块中?
还有什么我没有想到的?
目前做 1 和 2 在我看来是最好的,因为它使它真正成为一个常规设置,而且它会与它一起工作(manage.py diffsettings
cf django.core.management.commands.diffsettings
,它比较它来决定什么是不同的)。global_settings
settings