文字列.format()
を使用して、キーワード引数で文字列をフォーマットしています。いくつかの基本的なオブジェクトを文字列に渡し、文字列内のこれらのオブジェクトの属性を使用します。たとえば:Pythonでstr.format()を使用するときのHTMLエスケープ置換フィールド
"Hello, {user.first_name}!".format(user=my_user)
これらの文字列は、HTML形式の電子メールで使用することができるので、交換用のフィールドはHTMLエスケープ(django.utils.html.escape
を使用して)でなければなりません。
文字列の書式設定時に文字列置換フィールドにエスケープ関数を使用する最も良い方法は何ですか?これが合理的に可能でない場合は、文字列書式に代わる適切な方法は何ですか?私の文字列はデータベースに保存され、Djangoの管理インターフェースを通して変更されています。
私は実際に現在のテンプレートの代わりに '.format()'を使用しています(これらは電子メールのフォーマットに使用されています)。 kwargsのエスケープ方法は、引数自体を(文字列に変換して)エスケープするので、 'user'が文字列であるため、' {user.first_name} 'のような式は機能しません。 –