检测Django模板中的未设置变量

时间:2010-01-21 03:43:03

标签: django templates variables

作为PHP开发人员的长期以来,我习惯于为我的应用程序设置错误级别,以便在使用未初始化的变量时警告我。我想知道Django中是否存在类似的功能,我可以在运行时检测到我在模板中使用了一个未通过视图显式传递给模板的变量?

例如,我在模板中拼错了变量名

{{ mysearch }}

什么时候应该

{{ my_search }}

常见的错误,在打字时不注意等等。在PHP中,我会看到关于使用uninitiailzed变量的警告,但Django似乎并不关心,只是一直没有发生。从调试的角度来看,当我犯这样的错误时,检测它会很棒。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

你正在寻找这个吗? http://docs.djangoproject.com/en/1.1/ref/templates/api/#invalid-template-variables

您是否尝试过设置TEMPLATE_STRING_IF_INVALID?如,

TEMPLATE_STRING_IF_INVALID = 'DEBUG WARNING: template variable [%s] is not defined'

这将导致在引用未定义变量的每个位置的渲染html中打印该字符串,以及变量名称。

阅读本文:http://docs.djangoproject.com/en/1.1/ref/settings/#setting-TEMPLATE_STRING_IF_INVALID

答案 1 :(得分:0)

在较新版本的Django中,您可以通过修改LOGGING设置来获得re.sub documentation

LOGGING = {
    # ... [SNIP]
    'loggers': {
        # ... [SNIP]
        'django.template': {
            'handlers': ['console'],
            'propagate': False,
            'level': 'DEBUG',
        }
    },
}
相关问题