在django中实现仅调试中间件的最佳方法

时间:2013-07-02 08:27:54

标签: django middleware

我有一个中间件类,它在HTML / XML模板中附加一个注释块,用于标识模板位置,调用它的视图及其参数等等。显然我不想在生产中显示这个评论块。中间件类本身有一个

if settings.DEBUG:
    # write to template here

警告,所以如果打开调试模式,它不应该写入模板,但对于我自己的想法,我宁愿不在生产服务器上添加中间件类。我希望能够只在我的本地设置文件中将它添加到中间件类,但因为它显然是一个元组,这是不可能的。我可以在我的本地设置中覆盖MIDDLEWARE_CLASSES,但在我这样做之前,我想知道是否有更多接受/更简洁的方法。

1 个答案:

答案 0 :(得分:2)

您应该将生产和本地设置拆分为不同的文件,然后在本地设置中添加中间件。帮助您入门的小例子:

文件结构:

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

仅在dev.py设置中添加django_debug_toolbar的示例:

__初始化__ 的.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',)