35

私はChoiceField私のDjangoフォームに持っています:

gender = forms.ChoiceField(label='', choices=GENDER)

class attrスタイルを設定できるように、フィールドにを追加したいと思います。通常、次のようなものが機能します。

forms.Field(label="Display name",help_text='',widget=forms.TextInput(attrs={'class': 'wideInput'}))

しかし、これは ChoiceField では機能しません。次のエラーが発生します。

TypeError: init () が予期しないキーワード引数 'attrs' を取得しました

widgetクラスを ChoiceField に追加するには、何を使用すればよいですか?

4

2 に答える 2

72

https://docs.djangoproject.com/en/1.4/ref/forms/widgets/をざっと読んだ

ウィジェットについてうなずいた-どうやら彼らはそうです

Django の HTML 入力要素の表現。ウィジェットは HTML のレンダリングを処理します

そして、各フォームフィールドはウィジェットに関連付けられています - 以下を読んでください:

https://docs.djangoproject.com/en/1.4/ref/forms/fields/#built-in-fields

ChoiceField の場合、defaultWidget は「Select」です (上記のリンクに記載されているとおり)。正しいウィジェットを知っているので、必要なクラスを追加します。

widget=forms.Select(attrs={'class':'regDropDown'})

私の最終行は次のようになりました。

gender = ChoiceField(label='', choices=SEX, widget=forms.Select(attrs={'class':'regDropDown'}))

ハザ!

于 2012-07-12T00:58:59.660 に答える
6

ChoiceField は forms.Select ウィジェットを使用します

forms.Select(attrs={"name": "select_0","class": "form-control"})
于 2016-09-19T20:59:18.937 に答える