2017-02-14 2 views
0

テンプレートタグのテンプレートが<input type="submit"> HTMLタグで動作する方法はありますか?例えばHTML入力タグ(値属性)内にDjangoテンプレートタグ

、変数を想像textYou're cool :-)が含まれている、と私は私が設計した対応するカスタム絵文字に:-)をオンカスタムテンプレートタグを持っています。

すると、次は動作しません、それだろう:<input type="submit" name="text" value="{% emoticons %}{{ text }}{% endemoticons %}">

私はまた<button type="submit" name="text">{% emoticons %}{{ text }}{% endemoticons %}</button>を使用することができます理解しますが、基本的に通常のテキストのように次の行にエレガントにオーバーフローしないボタンは、したがって、私は「、いそれを避けようとしています。

誰もがこれにすてきな回避策を得ましたか?とても有難い。

答えて

1

この問題の説明から、テンプレートタグではなくテンプレートフィルタを実装する必要があるようです。どちらの場合でも、フィルタとタグの両方が機能します。フィルタの場合

<input type="submit" name="text" value="{% emoticons text %}"> 

<input type="submit" name="text" value="{{text|emoticons}}"> 
+0

ガッチャしかし、使い方は次のようになります。私はまた、テンプレートフィルタアプローチをとる際にパフォーマンスの差があるかどうかも疑問に思っていました。どんな騒ぎ? –

+1

パフォーマンスの観点からは、コードの同じ実装が与えられていても差異があるかどうかはわかりません。どちらも関数呼び出しになります。 Djangoがテンプレートをどのように構文解析/コンパイルするかという意味では、違いがあるかどうかは分かりませんが、巨大なテンプレートを持たないか、巨大な出力を生成しない限り、心配するべきではありません。この場合、Jinja2はパフォーマンスに適しています。カスタムタグ/フィルタに関するドキュメントを読んで、XSSを避ける​​ようにしてください。 – Vasil

関連する問題