2009-03-09 8 views
2

私はフォームフィールドのリストを反復しています。どのように各フィールドのタイプを特定するのですか?チェックボックスの場合、field.is_checkboxを呼び出すことができます...リスト、multiplechoicefieldsなどのための同様のメソッドはありますか?フォームフィールドAPI?

ありがとうございます。

+0

ソースがあります。なぜあなたはこれをする必要がありますか? –

答えて

-1

ここではHTMLを使用していると推定しています。

余分なクラスを与えるのはどうですか?

そして、あなたが出回っ知らなかった場合には、クラス属性は、この認識します:3つのクラスを持つよう

class="hello there you" 

を。クラス 'hello'、クラス 'there'、クラス 'you'です。 クラスがすでにある場合は、スペースとカスタムクラス名を追加してください。

3

は、フォーム上の各フィールドのクラスを見てください:

for f_name, f_type in my_form_instance.fields.items(): 
    print "I am a ",type(f_type) 
    # or f_type.__class__ 

これは<class 'django.forms.fields.BooleanField'>のような出力を生成します。

あなたがいることを好む場合はで、単純な文字列として名を取得できます。

print type(f_type).__name__ 
# produces 'BooleanField' 

編集:また、フィールドとウィジェットの区別に注意してください。 DjangoにはCheckboxフィールドはありませんが、BooleanFieldのデフォルトであるCheckboxInputウィジェットのみです。ウィジェット(非常にレンダリング固有のもの)やフィールド(そのフォームフィールドのデータ型や検証との関連性が高い)を検索することを意味しますか?ウィジェットの場合は、

f_type.widget 

希望するウィジェットタイプを取得できます。

1

これはあなたが望むものであるならば、私はわからないが、あなたはHTMLになってしまうために起こっているフィールドの種類を知りたい場合は、これでそれを確認することができます。

{% for field in form %} 
    {{ field.field.widget.input_type }} 
{% endfor %} 

widget.input_typeはテキスト、パスワード、選択などを保持します

PS私は5秒前までこれを知らなかった。 #django irc.freenode.netには常に良い助けがあります。

関連する問題