我有一些GA代码,我们只需要在实际网站上放置。所以我正在尝试检查DEBUG的值,该值在settings.py中当前设置为True。但是,在我的模板文件settings.DEBUG中,不会评估为True或False。如果我打印出变量,它会显示调试日志。
我尝试按照本指南:How to check the TEMPLATE_DEBUG flag in a django template?添加了context_processors.py,仍然在我的模板文件中,DEBUG作为调试日志出现。
模板:
{% if DEBUG %}
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-xxx', 'auto');
// ga('send', 'pageview');
</script>
{% endif %}
settings.py:
DEBUG = True
...
TEMPLATE_CONTEXT_PROCESSORS = (
'appname.context_processors.debug',
)
context_processors.py:
from django.conf import settings
def debug(context):
return {'DEBUG': settings.DEBUG}
答案 0 :(得分:0)
这里有几件事情。
首先,要输出变量,请使用{{ }}
语法而不是{% %}
。后者用于模板标签。如果执行{% debug %}
,则调用debug template tag,这确实会输出大量调试信息。要输出变量,您可以{{ DEBUG }}
。
其次,TEMPLATE_CONTEXT_PROCESSORS等设置在几个版本之前已弃用,并且没有任何效果。要添加上下文处理器,请将其添加到TEMPLATES设置的OPTIONS字典中的context_processors
列表中。
第三,您链接的问题指出您不需要来添加您自己的上下文处理器,因为默认情况下已经提供了一个。只要您的IP位于INTERNAL_IPS列表中,{{ debug }}
和{% if debug %}
就可以开箱即用。