私はdjango 1.9をjinja2で使用しています。モジュールdjango-jinjaをインストールしましたが、テンプレートをうまく読み込みますが、基本フィルタは使用できません。 jinja2のテンプレートを使っているので、jinja2の基本的な表現は使えません。 jinja2の基本的な表現を使用しようとすると、私はTemplateSyntaxErrorを取得します。django 1.9のテンプレートでjinja2の基本式を使用できません。
これはJinja2のと私のsetting.pyです:
INSTALLED_APPS = [
"django_jinja",
]
from django_jinja.builtins import DEFAULT_EXTENSIONS
JINJA2_MUTE_URLRESOLVE_EXCEPTIONS = True
TEMPLATES = [
{
"BACKEND": "django_jinja.backend.Jinja2",
"NAME": "jinja2",
'DIRS': [
os.path.join(PROJECT_DIR, 'templates/jinja2'),
],
"APP_DIRS": True,
"OPTIONS": {
"debug": True,
'environment': 'MyApp.jinja2.environment',
"context_processors": [
"django.contrib.auth.context_processors.auth",
"django.template.context_processors.debug",
"django.template.context_processors.i18n",
"django.template.context_processors.media",
"django.template.context_processors.static",
"django.template.context_processors.tz",
"django.contrib.messages.context_processors.messages",
],
"extensions": DEFAULT_EXTENSIONS + [
'wagtail.wagtailcore.jinja2tags.core',
'wagtail.wagtailadmin.jinja2tags.userbar',
'wagtail.wagtailimages.jinja2tags.images',
"django_jinja.builtins.extensions.DjangoExtraFiltersExtension",
]
}
},
]
マイurl.pyテンプレートを読み込んでいます...
from django_jinja.views.generic.list import ListView
urlpatterns = [
url(r'^$', ListView.as_view(
model=Items,
queryset=Items.objects.all(),
context_object_name='items',
template_name='jinja2/index.jinja'
)),
]
マイ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
そして、私のindex.jinjaこのテンプレートは私にこのエラーを返します:TemplateSyntaxError at /残りの部分を解析できませんでした: '(' odd '、' even ')' from 'loop.cycle(' odd ' 「でも」)」あなたは、設定の全体の辞書を定義しましたが、あなたが実際には何にそれを割り当てていない
はい、定義されています。間違い。 – norbertoonline