在Django中访问设置信息的首选方法是什么?

时间:2013-10-07 15:57:35

标签: python django

如果有其他方法,请插入,但我最常见的是这两种方法,它们都存在于django源中。

if settings.DEBUG:

if hasattr(settings, 'POSTGIS_VERSION'):

后者具有默认优势但在默认情况下会出现错误(缺少某些内容)的情况下使用第一个版本会更好吗?什么是默认值的规则,什么时候应该将它放在settings.py文件中?什么时候应该直接将它包含在源代码中?

2 个答案:

答案 0 :(得分:2)

在应用的默认设置中访问应用定义的设置时,我建议if settings.name: - 默认值已由您定义。另一方面,在编写外部应用程序时 - 我建议if hasattr(settings, 'name'): - 您不能指望您的应用程序用户将定义所有默认值。

答案 1 :(得分:0)

修改第一个答案。从Django获取内容的可靠且可读的方式:

variable = getattr(settings, 'MY_SETTING', None)

现在变量等于某些设置或无,如果根本没有这样的设置。