我目前正在将django从1.7.10用jingo升级到1.8.5(实际上是从1.6.x升级但我现在可以用1.7运行该网站)
jingo不再适用于django 1.8,所以我在django 1.8中切换到新的Jinja2支持。我已经找到了我的模板,并且他们正在尝试使用jinja2进行渲染,但找不到我的助手(contextfunction
)。
我的TEMPLATES
配置如下所示:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [
os.path.join(PROJECT_ROOT, 'mysite', 'html'),
os.path.join(PROJECT_ROOT, 'mysite', 'html', 'site')
],
'APP_DIRS': False,
'OPTIONS': {
'extensions': [
'pipeline.templatetags.ext.PipelineExtension',
'mysite.site.extensions.CacheTag',
'mysite.site.extensions.CmsBlockTag',
],
'extensions': [
'jinja2.ext.autoescape',
'jinja2.ext.do',
'jinja2.ext.with_'
],
},
}
]
我目前有一个文件mysite/site/helpers.py
,其中包含(以及其他功能和过滤器):
from jinja2 import contextfunction
@contextfunction
def upcase(text):
return text.upper()
一个模板:
<h3>{{ upcase('asdf') }}</h3>
我收到错误Exception Value: 'upcase' is undefined
。
如何使助手文件的内容可用?