ブログにMarkdown構文が必要でした。python-markdown2ライブラリを使用することにしました。私はTDDプロセスに従うので、Markdownライブラリをインポートして機能するテストを作成しました。次に、必要なのは、すべてのテストに合格するように出力の一部を変換することだけでした。プレゼンテーションロジックのようなものだと思うので、ライブラリをインポートしたいテンプレートタグを作成しました。問題は、そのライブラリをインポートできないことです。何時間もデバッグしましたが、それでも理由がわかりません。
いくつかの事実:
- 以前にtests.pyにインポートされました(したがって存在します)、
- 外部ライブラリを使用しなくても、テンプレートタグは正常に機能します。
正確なエラーメッセージ:
TemplateSyntaxError at /article/1/foo-bar/
'cheese' is not a valid tag library: ImportError raised loading blog.templatetags.cheese: cannot import name markdown
これがtemplatetags/cheese.pyです:
from django import template
import markdown2
register = template.Library()
@register.filter
def eggs(value):
return value
テンプレートは次のとおりです。
{% load cheese %}