我在哪里将jinja2助手放在django 1.8项目中?

时间:2015-10-07 12:45:33

标签: python django jinja2

我目前正在将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

如何使助手文件的内容可用?

0 个答案:

没有答案