2013-07-02 23 views
1

我有一箇中間件類,它將註釋塊添加到標識模板位置的HTML/XML模板,調用它的視圖及其參數等等。顯然,我不想在生產中顯示此評論塊。中間件類本身具有在django中實現只調試中間件的最佳方法

if settings.DEBUG: 
    # write to template here 

警告,如果調試模式是它不應該寫模板,但我自己的一片心意,我寧願沒有添加對生產的中間件類服務器。我想只能在我的本地設置文件中將它添加到中間件類中,但由於它是一個元組,顯然這是不可能的。我可以在我的本地設置中重寫MIDDLEWARE_CLASSES,但在我這樣做之前,我想知道是否有更接受/更乾淨的方式來做到這一點。

回答

2

您應該將生產和本地設置分割爲不同的文件,然後在您的本地設置中添加中間件。小例子,讓你開始:

文件結構:

Settings 
---> __init__.py 
---> prod.py 
---> dev.py 

示例如何只在dev.py設置中添加django_debug_toolbar:

__init__的.py:

# Other settings ommitted 
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
) 

dev.py:

from settings import * 
# Other settings ommitted 
MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',) 
相關問題