Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:Can';使用Jinja2作为引擎时找不到模板_Python_Django_Django Templates_Jinja2 - Fatal编程技术网

Python Django:Can';使用Jinja2作为引擎时找不到模板

Python Django:Can';使用Jinja2作为引擎时找不到模板,python,django,django-templates,jinja2,Python,Django,Django Templates,Jinja2,我使用的是Django 1.8,它允许您切换Jinja2的Django模板引擎 我的设置中有以下内容。py TEMPLATES = [{ 'BACKEND': 'django.template.backends.jinja2.Jinja2', 'DIRS': [ os.path.join(BASE_DIR, 'templates/jinja2'), ], 'APP_DIRS': True, 'OPTIONS': { 'env

我使用的是Django 1.8,它允许您切换Jinja2的Django模板引擎

我的设置中有以下内容。py

TEMPLATES = [{
    'BACKEND': 'django.template.backends.jinja2.Jinja2',
    'DIRS': [
        os.path.join(BASE_DIR, 'templates/jinja2'),
    ],
    'APP_DIRS': True,
    'OPTIONS': {
        'environment': 'appname.jinja2.environment',
    }, 
},]
我基本上是在使用中的说明,只是我试图让引擎在每个附加应用程序的templates文件夹中查找模板。所以

├── myproject
│   ├── __init__.py
│   ├── jinja2.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── app2
│   ├── __init__.py
│   └──  other app stuff ...
├── templates
│   └── jinja2
│       └── app2
│           └── template.html
├── manage.py
├── templates
│   └── jinja2
│       ├── something.html
这两个应用都已安装:

INSTALLED_APPS = (
    ...
    'myproject',
    'app2',
)
myproject/jinja2.py包含:

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
但是,当我使用

from django.template.loader import get_template
template = get_template('app2/template.html') 
我试着添加

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)
尝试将
{'loader':loader}
添加到'OPTIONS',其中loader是来自django.template.loaders.app_目录的
导入loader
,以及使用一些Jinja2加载程序。没有一个奏效

如果我将DjangoTemplates引擎添加为辅助引擎,它将查找该模板。金甲2号没有。以前,Debug Traceback屏幕显示只使用了
django.template.loaders.filesystem.Loader
(就在下面,上面写着Traceback切换到复制粘贴视图),但现在它没有告诉我任何事情

我正在使用Windows和开发服务器(
manage.py runserver
)。我在settings.py中没有任何
TEMPLATE\u DIRS
(尽管将特定的应用程序模板目录硬编码到
TEMPLATE\u DIRS
中也没有解决问题;事实上,我收到了警告
Django 1.8中不推荐使用独立模板设置,
当我删除此设置时,我没有问题(0静音))

在我的回溯中,我没有发现以下情况之一:

Template Loader Error:
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
Using loader django.template.loaders.app_directories.Loader:
查看:


我没有主意了。帮助。

environment:appname.jinja.environment
,本节,请尝试
environment:appname.jinja2.environment
,您将e拼写错误为capitol e,并添加了jinja2而不是jinja。我的错误,但这些错误只存在于问题中,不在我的代码中。但您的模板路径不在
app2/template.html
中,它是
jinja2/app2/template.html