11

WTForms 内で、HTML5 で使用される新しい属性のみの属性をいくつか持つことは可能ですか?

たとえば、placeholder="foo"、required、および autofocus 属性を持つ TextField を作成したいとします。これは WTForms でどのように行われますか?

html では、次のようになります。<input maxlength="256" name="q" value="" placeholder="foo" autofocus required>

placeholder="foo"WTForms で簡単に実行できることに注意してください。autofocusそしてrequired、それらには値がないため、..まあ、私が見た限りでは、WTForms ではサポートされていません。

WTForms はこれをサポートできますか?

4

3 に答える 3

30

昨日リリースされた WTForms 1.0 では、HTML5 コンパクト構文がデフォルトになりました。これで(ジンジャで)できるようになりました:

{{ form.field(autofocus=true, required=true, placeholder="foo") }}

Jinja では、リテラルはtrue代わりにあることに注意してください。ただしTrue、Python コンソールでこれを試す場合は、Trueこれを機能させるために Python リテラルを使用する必要があります。

デフォルトの出力として XHTML を使用する WTForms 0.6.x では、次のように実行できます。

{{ form.field(autofocus="autofocus", required="required", placeholder="foo" }}

これは、XHTML でブール属性を表すための推奨される方法です。生成された HTML はもう少し冗長ですが、これはたまたま 100% 有効な HTML5 であり、完全に同等です。

于 2012-03-01T20:12:15.767 に答える
3

私はWTFormsを初めて使用しますが、使用する代わりにソリューションを改善できるようです:

{{ form.field(autofocus=true, required=true, placeholder="foo") }}

使用する :

{% if field.flags.required %}
   {{ field(autofocus=true, required=field.flags.required, placeholder="foo") }}
{% else %}
   {{ field(autofocus=true, placeholder="foo") }}
{% endif %}

required=falseWTForms は100% HTML5 を正しく処理していないようで、属性required="False"を削除する代わりに HTML に属性を設定します。これは、WTForms の次のバージョンで改善される可能性がありますか?

于 2012-04-19T06:32:43.237 に答える
0

おそらく、カスタム ウィジェットを作成する必要があります。

カスタム ウィジェットに関するドキュメントを確認してください。

于 2010-08-27T04:28:23.663 に答える