首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Jinja2时管理员中断

使用Jinja2时管理员中断
EN

Stack Overflow用户
提问于 2017-07-25 05:55:20
回答 1查看 234关注 0票数 1

由于某些原因,当我尝试使用Jinja2而不是Django模板引擎作为模板引擎时,我的wagtail管理界面崩溃了。我的前端运行得很好,它可以在app/jinja2中找到我的模板。这是一个添加了wagtail的Django项目。

这是我在尝试访问/admin时遇到的错误,

代码语言:javascript
运行
复制
TemplateDoesNotExist at /admin/wagtailadmin/home.html
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/
Django Version: 1.11
Exception Type: TemplateDoesNotExist
Exception Value: wagtailadmin/home.html
Exception Location: /Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python3.6/site-packages/django/template/loader.py in get_template, line 25
Python Executable:  /Users/dbroadlick/Desktop/projects/codero2/virtualenv/bin/python
Python Version: 3.6.1
Python Path:    ['/Users/dbroadlick/Desktop/projects/codero2',
 '/Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python36.zip',
 '/Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python3.6',
 '/Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python3.6/lib-dynload',
 '/Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python3.6/site-packages']
Server time:    Mon, 24 Jul 2017 21:40:59 +0000

下面是我的模板配置,

代码语言:javascript
运行
复制
TEMPLATES = [
{
    'BACKEND': 'django.template.backends.jinja2.Jinja2',
    'APP_DIRS': True,
    'OPTIONS': {
        'extensions': [
            'wagtail.wagtailcore.jinja2tags.core',
            'wagtail.wagtailadmin.jinja2tags.userbar',
            'wagtail.wagtailimages.jinja2tags.images',
        ],
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

它还表示,它正在尝试使用jinja2引擎,但它不应该使用,因为wagtail admin是使用Django模板编写的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 08:04:05

您的TEMPLATES设置已将Jinja2配置为唯一可用的模板引擎,因此没有什么可以触发Wagtail管理员所依赖的“传统”Django模板引擎行为(即:在每个应用的/template文件夹中查找所请求的模板路径wagtailadmin/home.html)。因此,模板永远不会被找到。您需要在TEMPLATES设置中包含Jinja2和DjangoTemplates的配置,如下所示:

代码语言:javascript
运行
复制
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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',
        'APP_DIRS': True,
        'OPTIONS': {
            'extensions': [
                'wagtail.wagtailcore.jinja2tags.core',
                'wagtail.wagtailadmin.jinja2tags.userbar',
                'wagtail.wagtailimages.jinja2tags.images',
            ],
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

请注意,您需要有一些约定来告诉Django应该使用哪个引擎呈现哪些模板-使用上面的配置,我相信将您的Jinja2模板放在some_app/jinja2/中而不是some_app/templates/中应该可以解决这个问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45290709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档