2016-12-21 2 views
1

ためTemplateDoesNotExistエラーが私はDjangoテンプレートの継承について学び、それに取り組んでいました。ジャンゴ:基本テンプレート

私は他のテンプレートと同じディレクトリに​​テンプレートを作りました。

と子テンプレート内の最初の行として{% extends "base_post_login.html" %}と入力します。子テンプレートは、バックエンドによってレンダリングされるとき

しかしTemplateDoesNotExistエラーが発生します。

これはsettings.py(関連部分)である:

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', 
     ], 
    }, 
}, 
] 

それが拡張し、親テンプレートいない場合は、すべてのテンプレートが正しくレンダリングされます。

どうすればよいですか?

+0

質問が不明です。あなたのアプリケーションをどのように構造化し、テンプレートフォルダがどこにあるのかを説明することができます... –

+0

はあなたの子テンプレートのように見え、 'base_post_login.html'は同じディレクトリにありません。そして 'APP_DIRS'を' True'に設定します。あなたのテンプレートファイルは異なるアプリのフォルダの下にありますか?もしそうなら、それらのはんだを 'DIRS'オプションで定義する必要があります。 – alix

+0

@alix彼は>他のテンプレートと同じディレクトリにあります – Saksow

答えて

3

あなたはDjangoのextends間違った方法を使用しているので、これを行う、それは親のテンプレート名を取る必要は:私が見

{% extends "base.html" %}

EDIT

OK、あなたはあなたのようなテンプレートパスを使用する必要があります

「テンプレート/ child_page.html」のようにレンダリングしてから、同じ方法で拡張する必要があります。{% extends "templates/base.html" %}

+0

それは申し訳ありませんでした。それはtypo..fixed今でした..それはbase_post_login.htmlです – sachsure

+0

私は答えを編集しました – Saksow

+1

ああええと..私は両方のテンプレートが同じディレクトリにあるが、それらはビューを通してレンダリングされるので、必要ではないと思った。 – sachsure

関連する問題