カスタム テンプレート フィルターを使用して変更する必要がある Django アプリケーションを継承しました。私は Django にまったく慣れていないので、かなり戸惑っています。指示に正確に従っていると思っていましたが、この件に関する他の投稿からのすべてのアドバイスにも従っていましたが、テンプレートに次の行を含めると、まだエラーが発生します。
{% load mlgb_custom_filters %}
私のディレクトリ構造は次のとおりです。
mysite (i.e. the project)
__init__.py
mlgb/ (i.e. the app)
__init__.py
templatetags/
__init__.py
mlgb_custom_filters.py
mlgb_custom_filters.py のコードは次のとおりです。
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter(name='fix_dashes')
@stringfilter
def fix_dashes( value ):
return value.replace( '--', 'DASH' )
if __name__ == "__main__":
testvar = fix_dashes( "ouch -- ow -- I hate django" )
print testvar
ご覧のとおり、'name = main' セクションを追加して、スタンドアロン モードで実行できるようにしました。これは、その特定のファイルにエラーがないことを確認するためであり、スタンドアロン モードで実行しても問題ありません。
他の人のアドバイスに基づいて、インポートエラーが発生したかどうかを確認するために、別のファイルにインポートしようとしましたが、これをsettings.pyの最後に追加しても問題ありませんでした(devを使用している間)サーバ):
試してみてください: mlgb.templatetags.mlgb_custom_filters を例外としてインポートします。
また、settings.py の INSTALLED_APPS には「mysite.mlgb」という行が含まれています。さらに別の人が提案したように、「mysite.mlgb」の代わりに「mlgb」だけを入れてみました。そして、変更を加えるたびに開発サーバーを再起動しました。
今までウェブで見つけたすべての提案を試したと思います。新しいアイデアを持っている人はいますか?テンプレートディレクトリがアプリケーションと同じ構造内にない、つまり mysite の下にないディレクトリ構造を継承したという事実と何か関係があるのでしょうか? ここでアイデアのバレルをこすり落とします!誰かが助けてくれることを願っています。