2017-01-19 10 views
1

私はDjangoプロジェクト(ver 1.10)でjinja2を使用しようとしています。それを設定した後、私はプロジェクトを実行しようとしたら、私はtemplatesフォルダでTemplateDoesNotExist at /base/index.htmlDjangoプロジェクトでJinja2 throw templatedoesnotexistエラー

Template-loader postmortem 

Django tried loading these templates, in this order: 

Using engine jinja2: 
This engine did not provide a list of tried templates. 

を取得し、私はindex.htmlのが置かれるベースディレクトリを持っています。さらに、Djangoのテンプレートエンジンを使用すると、この同じフォルダ構造が完全に機能します。この問題を解決するにはどうすればよいですか?次のように


私の設定は次のとおりです。(私は意図的にDjangoテンプレートフォールバックを除外していることに注意してください)settings.py

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.jinja2.Jinja2', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')], 
     'APP_DIRS': True, 
     'OPTIONS': {'environment': 'uberfordoc.jinja2.environment', 
     }, 
    }, 
] 
私も jinja2.pyと呼ばれるファイルがで保持している

プロジェクトフォルダ:

from __future__ import absolute_import 
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 
+0

を印刷することにより@Timbaduへのヒントのおかげで、あなたのsettings.pyファイルに着い? – Timbadu

+0

@Timbaduそれは働いた。パスの設定に問題がありました。私は出力を見た後に働いた。ありがとう:) – LauraBen

答えて

1

これは私のBASE_DIR a ND MAIN_DIR settings.py

BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 
MAIN_DIR = os.path.dirname(os.path.dirname(__file__)) 

で、私のJinja2のテンプレートは

/ユーザ/ユーザ名/デスクトップ/ uberfordoc /テンプレート/ Jinja2の

'DIRS': [os.path.join(BASE_DIR, 'templates')], 
を変更し、パスにありました

'DIRS': [os.path.join(MAIN_DIR, 'templates/jinja2')], 

となりました。 (ターミナル)で出力があなたの期待と一致しない、「印刷os.path.join(BASE_DIR、 『テンプレート』)」あなたが追加した場合

print os.path.join(BASE_DIR, 'templates') 
関連する問題