再利用可能なdjangoアプリ用に、カスタムテンプレートタグを作成しています。
私が定義しているタグは同じアプリ内のモデルを参照しているので、それをインポートする必要があります。
アプリコードをdjangoプロジェクトにコピーするとすべて正常に機能しますが、アプリをdistutilsでパッケージ化し、pipまたはsetup.py installを使用してインストールすると(アプリコードがサイトパッケージにコピーされるため)、使用できません。
テンプレートタグモジュールにアプリケーションモデルをインポートしようとすると、ImportErrorが発生します。エラーを発生させるコードは次のとおりです。
djangoインポートテンプレートから
インポートcms_fragments.modelsregister = template.Library()
発生した例外は次のとおりです。
ImportErrorにより、cms_fragments.templatetags.cms_fragments_tagsの読み込みが発生しました:modelsという名前のモジュールがありません
私のアプリケーションのレイアウトは正しいと確信しています。
| -cms_fragments
| -_ init _ .py
| -models.py |
-templatetags| -_ init _ .py
| -cms_fragments_tags.py |
-views.py
これに関連するすべての投稿を見たことがありますが、django-projectにあるコードとsite-packagesにあるコードの違いを報告している人は誰もいません。
ヒントはありますか?