2012-09-05 9 views
10

WTFormsフィールドオブジェクトを呼び出すと、レンダリングされたフィールドが生成され、引数はすべて属性として使用されます。ハイフンを含む属性をWTFormsフィールドに追加する方法

form.field(attribute='value') 

<input attribute='value'> 

のようなものを返しますどのように私は、単一のキーワード引数としてPythonでそれらを解析できない作り、ハイフンが含まれているデータは、提供として、HTML5のカスタムデータは、このような属性を追加することができますか?

答えて

19

対応するキーと値のペアを持つ辞書を作成し、フィールドの呼び出しにそれを渡すために**を使用します。

attrs = {'data-provide': "foo"} 
form.field(**attrs) 

編集:@NiklasBによってコメントが答えの一部であるべきように見えます: flaskflask-WTFを使用する場合は、テンプレートに{{ form.field(**{'data-provide': 'foo'}) }}を使用してください。

+10

フラスコ-WTFのフラスコを使用している場合、{{form.field(** {'data-provide': 'foo'})}}テンプレート内 –

+0

ありがとう - 素晴らしい仕事です。私は次のことをしました:{{form.phone(** {'データフォーマット': '(ddd)ddd-dddd'、 'クラス': 'form-control bfh-phone'、 'プレースホルダ': '電話'} )}} –

+0

https://stackoverflow.com/questions/20440056/custom-attributes-for-flask-wtforms –

0

form.field関数呼び出しでそのような辞書を使う必要はありません。

{{form.field(データ提供=「FOO」)}}

をしかし、どのAFTERそう:**これだけではなく、パラメータを追加し、関数の名前付きパラメータに辞書項目をアンパックそのフィールドに必要なパラメータ。 言い換えれば、なぜパラメータを追加できるだけで辞書をすぐに解凍するのですか?

関連する問題