次のように、(Web アプリではなく) スタンドアロン ツールで Django テンプレート システムを使用しています。
from django import template
try:
tmpl = loader.get_template(my_template_path)
context = template.Context(my_template_context)
txt = tmpl.render(context)
except (template.TemplateSyntaxError, template.TemplateDoesNotExist), e:
# ...
テンプレートにエラーが含まれている場合、例外がスローされます。エラーのファイル名、行番号、および行位置を取得するにはどうすればよいですか? この場合、例外からこの情報を取得することを期待する必要がありますか (ブラウザーの応答をレンダリングしない)?
の値がと数値のペアを含むタプルでTemplateSyntaxError
ある属性があることに気付きました。はファイル名と同じです。数字はエラーの文字位置に似ていないように見えますが、別の解釈方法があるのではないでしょうか?source
LoaderOrigin
LoaderOrigin
name
TemplateDoesNotExist
には、見つからなかったテンプレートの名前を示す 、 、およびsource
のみが含まれているようです。読み込みを行っているテンプレート タグを見つける方法はありますか? または、このエラーは後の段階で行番号が利用できなくなったときに発生しますか?args
message
私はdjango.settings
有効であり、それが重要な場合TEMPLATE_DEBUG
はに設定されTrue
ています。(これは、テンプレートをウェブページにレンダリングするときに行番号を報告するために必要だと思います。派手なエラー表示があります。) また、 を介して設定された単純なテンプレートローダーを使用しTEMPLATE_LOADERS
ていますが、それは問題ではないと思います。また、現時点では Django 1.3 にこだわっているため、1.3 互換のソリューションが望ましいでしょう。
ありがとう!