Django中的设置命名空间



我正在编写可重用的Django应用程序。在settings.py中添加自己的设置的最佳做法是什么?我需要用我的app_name作为每个设置的前缀吗?或者我应该只为我的应用程序制作一个设置dict?

您应该尝试仅在所涉及的包中定义应用程序设置,尤其是当您正在考虑可重复使用的包时。坚持使用唯一的全局名称(这些设置是有效的(总是一个好主意。看看PEP-8全球版。

如果您正在创建一个可重复使用的包,那么最好的做法是首先尝试从设置模块导入属性,看看用户是否用自己的常量覆盖它。

例如

from django.conf import settings
MY_CONSTANT = getattr(settings, 'MY_CONSTANT', True)
def foo(*args, **kwargs):
    if MY_CONSTANT:
        return 'hello'
    else:
        return 'goodbye'

这样,用户可以在设置模块中设置MY_CONSTANT = False,这样应用程序将返回'goodbye',而不是默认的'hello'

正如您所建议的,大多数软件包都使用软件包名称作为前缀,这里有几个例子:

FEINCMS,美味

相关内容

  • 没有找到相关文章

最新更新