1

出力のためにユーザー入力の一部だけをエスケープする必要があります。例えば

Hey a status update for <a href="/profile/2353">@Friend Name</a> 

誰かが次のようなことをした場合に備えて、テキストのリンク部分をエスケープする必要があります

<h1>HaCkEDED!!!!</h1>

だから私はブロック全体を脱出することはできません。だから私はこれを試しました

'{%% autoescape off %%} <a href="/profile/%s">%s</a>{%% endautoescape %%}' % (tag, at)

これをブラウザに出力するために送信すると、次のようになります。

 {% autoescape off %} <a href="/profile/2353">@Friend Name</a>{% endautoescape %}

自動エスケープを機能させるにはどうすればよいですか?別の変数を使用して置くことはできません

{{ tag | safe }}

1つの投稿に複数のタグがあり、タグが異なる場所にある可能性があるためです。では、どうすればDjangoにテンプレートの1つを出力させることができますか?

4

2 に答える 2

3

何をしようとしているのか正確にはわかりませんが、ビューでは、を使用してアイテムを自動エスケープの必要がないものとしてマークできますdjango.utils.safestring.mark_safe

于 2012-06-14T08:36:46.053 に答える
0

カスタムテンプレートタグまたはフィルターを使用して、おそらくタグを識別できる正規表現を使用して、これを行う方が簡単だと思います。

于 2012-06-15T08:39:56.640 に答える