1

私はこのプロジェクトを持っています:

app/
app/Items/
app/Management/
...

プロジェクト全体のタグがありますManagementtemplatetags

app/Management/templatetags/main_filters.py
app/Management/templatetags/__init__.py

このファイルには次のものがあります。

from django import template

register = template.Library()

@register.filter(name='createmenu')
def createmenu(value):
...

それからhtmlテンプレートで私は持っています:

{%load main_filters%}
...
{{dataList|createmenu}}
...

settings.py私はINSTALLED_APPSに持っています:

...
"Management.templatetags",
...

そして最後に、私は常に次のエラーが発生します:

'main_filters' is not a valid tag library: 
Template library main_filters not found, tried django.templatetags.main_filters,
django.contrib.staticfiles.templatetags.main_filters,
django.contrib.admin.templatetags.main_filters

ITEMS./Management/templatetags Folderフォルダ内に()を入れて、、で変更してみましたが、動作します。何が起こっている?settings.pyItems.templatetags

前もって感謝します。

4

1 に答える 1

1

内に「Management.templatetags」ではなく「Management」が必要な場合がありINSTALLED_APPSます。インストールされたアプリ内のモジュールは、呼び出さtemplatetagsれる限り自動的にロードされます。{% load %}

また、エラーは3つのパスのみがチェックされたことを示しています

... django.templatetags.main_filters、django.contrib.staticfiles.templatetags.main_filters、django.contrib.admin.templatetags.main_filtersを試しました

Management.templatetags.main_filters次に、それがチェックされないと結論付けることができます。通常、いくつかの理由があります。

  1. ディレクトリ__init__.pyにありません。templatetagsあなたは1つ持っています。
  2. Management正しくインストールされていません。ケース。
  3. 奇妙なインポートの問題...幸いなことに=)
于 2013-03-26T12:22:25.800 に答える