1

これに関連する他のSOの質問を調べましたが、何も役に立ちませんでした。

アプリをインストールして、設定の INSTALLED_APPS 変数に追加しました。アプリ django_messages は、各テンプレートから base.html テンプレートを拡張します。

何らかの理由で、django はこのテンプレートの app ディレクトリを再帰的に検索しません。

エラーは次のとおりです。

{% extends "django_messages/base.html" %}

そのファイルは /Library/Python/2.7/site-packages/django_messages/templates/django_messages/base.html にあります。

しかし、djangoが提供している検索パスは次のとおりです。

Django は、これらのテンプレートを次の順序で読み込もうとしました。

エンジン django の使用:

django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/django_messages/templates/base.html (Source does not exist)

テンプレートローダーについて私が理解していることに基づいて、 /Library/Python/2.7/site-packages/django_messages/templates/ ファイルを検索する必要があるのは理にかなっています。しかし、ファイルは「django_messages/base.html」と呼ばれているため、django が django_messages/templates で base.html を探し、django_messages 修飾子を無視する理由がわかりません。

私の他のすべてのテンプレート (私自身のアプリ内) は、django ドキュメントに示されているように app_name/templates/app_name/xxx.html のように設定されています。したがって、すべてが正しく見えますが、機能していません。

これに頭をぶつけるのにうんざりしていて、助けていただければ幸いです。

ありがとう。

4

1 に答える 1

1

それで、なぜこのようなことが起こったのかがわかりました...

ファイル django_messages/base.html は「base.html」を拡張しようとしていました。この理由は、独自の base.html ファイルを拡張するためのものだと思いますが、私の base.html ファイルは app_name/base.html の下にあります。

django_messages/base.html のパスを変更すると、エラーは発生しませんでした。うまくいけば、これは他の誰かに役立ちます。エラーがファイル django_messages/inbox.html から「django_messages/base.html」を拡張していて、これらのパスは両方とも正しいと言っていたので混乱しました。このファイルを見つけますが、期待していた django_messages/base.html の代わりに inbox.html にトレースバックを追加します。とにかく、今はすべてが良いです。

于 2016-12-11T17:08:32.947 に答える