我正在编写可重用的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,美味