2012-07-12 17 views
20

benim Django Formunda bir ChoiceField var:Django'da bir ChoiceField ürününe nasıl "sınıf" ekleyebilirim?

sex = forms.ChoiceField(label='', choices=SEX) 

Ben bu yüzden stil ekleyebilirsiniz alanına classattr eklemek istiyorum. aşağıdaki gibi bir şey genellikle çalışır:

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

Ama bu ChoiceField için çalışmaz, aşağıdaki hatayı alıyorum: Ben sırayla kullanmalıyım Ne widget

TypeError: init() got an unexpected keyword argument 'attrs'

için bir sınıfı eklemek benim ChoiceField?

: - görünüşe göre onlar

Django’s representation of a HTML input element. The widget handles the rendering of the HTML

ve daha sonra her form alan bir widget bağlıdır - bir okuma var

cevap

38

Ben widget'lar hakkında rabbited https://docs.djangoproject.com/en/1.4/ref/forms/widgets/

hızlı okuma vardı ChoiceField için https://docs.djangoproject.com/en/1.4/ref/forms/fields/#built-in-fields

, defaultWidget (yukarıdaki bağlantıda belirtildiği gibi) "seç" dir. Ok, sağ widget'ı bilerek, sadece ihtiyaç duyulan sınıf eklemek için:

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

Huzzah:

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

yani benim son satır okuma sona erdi!

+0

Sen belirli bir süre sonra bunu yapmak –

+0

teşekkürler kendi yanıt kabul etmek gerekir – ajt

3

ChoiceField forms.Select widget'a kullanmak

forms.Select(attrs={"name": "select_0","class": "form-control"}) 
İlgili konular