元々、Djangoプロジェクトにはアプリが1つしかありませんでしたが、テンプレートはindex.html、detail.html、layout.htmlで構成されていました...インデックスファイルと詳細ファイルがレイアウトを拡張しました。それらはすべて同じディレクトリ([app1] / templates / [app1] /)にあり、すべてのファイルを正常に見つけることができました。
これで2つ目のアプリができたので、layout.htmlを再利用したいと思います... djangoプロジェクトのベースからテンプレートディレクトリを作成し、そこに配置することにしました。これが私のディレクトリ構造が今どのように見えるかです:
<basepath>/<django_project>/templates/shared
<basepath>/<django_project>/<app1>/templates/<app1>
<basepath>/<django_project>/<app2>/templates/<app2>
settings.pyを更新しました:
TEMPLATE_DIRS = (
'/full/path/to/<django_project>/<app1>/templates',
'/full/path/to/<django_project>/<app2>/templates',
'/full/path/to/<django_project>/templates',
)
'shared'ディレクトリにlayout.htmlがあります...app1またはapp2テンプレートディレクトリから、index.htmlがあり、ファイルの上部にある'extends'行は次のようになります。
{% extends "shared/layout.html" %}
ただし、アプリビューを読み込もうとすると、shared/layout.htmlが見つからないというエラーが表示されます。
TemplateSyntaxError at /
Caught TemplateDoesNotExist while rendering: shared/layout.html
私が欠けているアイデアはありますか?これはかなり簡単なはずです、私は本当に明白な何かを見落としているに違いありませんか?