2016-07-03 9 views
0

私は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 ' 「でも」)」あなたは、設定の全体の辞書を定義しましたが、あなたが実際には何にそれを割り当てていない

答えて

0

助けを事前に

{% extends 'jinja2/b4.jinja' %} 
{% block content %} 
    <ol> 
     {% for item in items %} 
      <li class="{{ loop.cycle('odd', 'even') }}"><a href="#">{{ item.title|striptags }}</a></li> 
     {% endfor %} 
    </ol> 
{% endblock %} 

おかげで...。 TEMPLATESと呼ばれる必要があります - the settings docsを参照してください。

注意なぜサードパーティのライブラリをインストールしたのか分かりませんが、Django 1.9にはJinja2テンプレートのバックエンドが含まれています。

+0

はい、定義されています。間違い。 – norbertoonline

関連する問題