Jinja2模板在Django 1.9中不起作用

洛林妮可

按照Django 1.9教程中的说明,我在项目根目录中使用环境设置添加了另一个文件-

from __future__ import absolute_import  # Python 2 only

from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.urlresolvers import reverse

from jinja2 import Environment


def environment(**options):
    env = Environment(**options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url': reverse,
    })
    return env`

(为了加载正确jinja2的文件,我不得不以不同的方式对文件进行重命名,在这种情况下是jinja2env.py在项目根目录下)

我更新settings.py了新的模板后端:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(PROJECT_ROOT, 'templates').replace('\\','/')],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
{
    'BACKEND': "django.template.backends.jinja2.Jinja2",
    'DIRS': [os.path.join(PROJECT_PATH, 'campaigns/templates').replace('\\','/')],
    "APP_DIRS": True,
    "OPTIONS": {
        'environment': 'jinja2env.Environment',
    }
},

在我正在使用的视图中,我使用using参数来指定jinja2模板引擎:

return render(request, 'jinja2/index.html', context={'projects': projects, 'counter': 0}, status=200, using='jinja2')

但是,当模板进行渲染时,出现以下错误:'static' is undefined显然我的设置有误,或者我做的不正确。模板开始如下:

<link rel="stylesheet" type="text/css" href="{{ static('stylesheets/main.css') }}">

我究竟做错了什么?我不使用{% load static %}它,因为它不是Django模板...所以我很茫然。

您正在加载错误的环境。在您的代码中,jinja2env.Environment实际上是从引用默认环境jinja2.Environment

"OPTIONS": {
    'environment': 'jinja2env.Environment',
}

应该更改为

"OPTIONS": {
    'environment': 'jinja2env.environment',
}

请注意小写字母environment,这是您在其中定义的环境jinja2env.py

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Jinja2模板在Django 1.9中不起作用

来自分类Dev

Django中jinja2模板的代码覆盖率

来自分类Dev

包含模板中的Jinja2变量

来自分类Dev

在 jinja2 模板列表中列出

来自分类Dev

systemjs在angular2-rc1中不起作用

来自分类Dev

为什么“ 2>&1”在此管道中不起作用?

来自分类Dev

systemjs在angular2-rc1中不起作用

来自分类Dev

如何在Jinja2模板Django中为“ for in”循环计算所有元素

来自分类Dev

如何检查jinja2 / django模板中任何变量的大小写?

来自分类Dev

1 2 3 4 7 8 9 p和退格键不起作用

来自分类Dev

如何使用Jinja2模板在烧瓶中解码

来自分类Dev

jinja2模板中未加载js脚本

来自分类Dev

如何在Jinja2模板中修改SelectField宽度

来自分类Dev

在jinja2模板中递增列表项(appengine)

来自分类Dev

在鹈鹕中打印jinja2模板的最后修改

来自分类Dev

jinja2模板中字典的格式和使用

来自分类Dev

在模板中访问jinja2全局变量

来自分类Dev

Jinja2模板中嵌套菜单的最佳实践

来自分类Dev

如何在jinja2模板中构建此循环

来自分类Dev

可以在jinja2模板中运行shell命令吗

来自分类Dev

使用url作为我的jinja2模板中的变量?

来自分类Dev

将QTextEdit中的多行插入Jinja2模板

来自分类Dev

如何迭代jinja2模板中的此属性?

来自分类Dev

jinja2模板中字典的格式和使用

来自分类Dev

比较Jinja2模板中的对称词典

来自分类Dev

扩展模板时Jinja2中的错误回溯

来自分类Dev

如何在jinja2模板中构建此循环

来自分类Dev

在Jinja2模板中调用构造的变量名称?

来自分类Dev

在CKAN的Jinja2模板中插入静态html