2013-04-21 75 views
3

我正在編寫可重用的Django應用程序。將自己的設置添加到settings.py的最佳做法是什麼?我是否需要爲每個設置加上我的app_name,或者我應該只設置一個設置字典。爲我的應用程序?Django中的settings namespace

回答

3

您應該嘗試僅在涉及的軟件包中定義應用程序設置,尤其是在您考慮使用可重複使用的軟件包時。用獨特的全球名稱(事實上,這些設置)堅持始終是一個好主意。看看PEP-8 globals

如果您正在創建一個可重用的包,那麼首先嚐試從設置模塊中導入該屬性以查看用戶是否用自己的常量重寫該屬性。

E.g.

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'

大多數軟件包確實使用包名稱如你所說的前綴,這裏的幾示例:

FEINCMStastypie

相關問題