当我在 django 模板中出错时{{placeholder}}
,我没有收到任何错误,只是输出中我期望内容的空白处。发生这种情况时,有没有办法在我的日志中查看某些内容,最好使用logging.warning
or logging.error
?
问问题
4343 次
3 回答
7
就在这里。只需添加您的开发settings.py
:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.template': {
'handlers': ['console'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
},
},
}
正如roboslone 所说,Django 1.9 确实引入了它。该片段与在 Django 文档中配置日志记录示例的第二个非常相似。
于 2017-12-08T22:09:21.227 回答
2
Django 唯一提供的用于处理TEMPLATE_STRING_IF_INVALID
. 如果您想要比这更好,您将不得不对模板引擎进行更深入的黑客攻击。
于 2010-01-22T04:48:42.257 回答
0
在 Django >= 1.8 中,TEMPLATE_STRING_IF_INVALID
已弃用,取而代之的string_if_invalid
是settings.TEMPLATES
.
如果您想做的不仅仅是依赖DEBUG
来自django.template
记录器的消息,您可以欺骗以下代码django.template.base.FilterExpression.render()
:
if '%s' in string_if_invalid:
return string_if_invalid % self.var
使用如下类:
class InvalidString(object):
def __mod__(self, other):
log.error('Missing template variable: "%s"', other)
# ... do other interesting things ...
return u''
def __contains__(self, item):
return item == '%s'
string_if_invalid
并设置settings.TEMPLATES
:
TEMPLATES = [{
'OPTIONS': {'string_if_invalid': InvalidString()}
# ...
}]
于 2017-03-06T22:59:56.070 回答