2012-07-12 16 views
20

Tengo un ChoiceField mi Formulario de Django:¿Cómo agrego una "clase" a un campo ChoiceField en Django?

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

me gustaría añadir un classattr al campo para que pueda diseñarlo. Algo parecido a lo siguiente por lo general funciona:

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

Pero esto no funciona para la ChoiceField, me sale el siguiente error:

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

Lo widget debería utilizar con el fin de añadir una clase a mi ChoiceField?

Respuesta

38

que tenían una lectura rápida de https://docs.djangoproject.com/en/1.4/ref/forms/widgets/

cuales rabbited en sobre widgets - aparentemente son

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

y luego cada campo de formulario está vinculado a un widget - tener una lectura de:

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

para ChoiceField, el widget predeterminado es "Seleccionar" (como se indica en el enlace anterior). Ok, sabiendo el widget derecha, para añadir la clase i sólo necesitaba:

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

para que mi línea final terminó la lectura:

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

Hurra!

+0

Usted debe ser capaz de aceptar su propia respuesta después de un cierto período de tiempo –

+0

Gracias a este – ajt

3

la ChoiceField utilizar el widget forms.Select

forms.Select(attrs={"name": "select_0","class": "form-control"}) 
Cuestiones relacionadas