通常、Jinja2で文字列出力を安全としてマークしたい場合は、次のようにします。
{{ output_string|safe() }}
ただし、output_stringが常に安全である場合はどうなりますか?安全なフィルターを使って毎回繰り返したくありません。
メールで出力するためにURLを準備する「emailize」と呼ばれるカスタムフィルターがあります。アンパサンドは常に逃げるように見えます。カスタムフィルターに出力を安全としてマークする方法はありますか?
通常、Jinja2で文字列出力を安全としてマークしたい場合は、次のようにします。
{{ output_string|safe() }}
ただし、output_stringが常に安全である場合はどうなりますか?安全なフィルターを使って毎回繰り返したくありません。
メールで出力するためにURLを準備する「emailize」と呼ばれるカスタムフィルターがあります。アンパサンドは常に逃げるように見えます。カスタムフィルターに出力を安全としてマークする方法はありますか?
たとえば、次のようにSafeStringを確認します。
from django.utils.safestring import SafeString
...
return context.update({
'html_string': SafeString(html_string),
})
Markupクラスを使用します。
クラスjinja2.Markup([string])
文字列を、エスケープする必要なしにHTML/XML出力に安全に含めることができるものとしてマークします。