2011-05-25 15 views
5

Tengo el siguiente formulario con opciones radioselect:Personalizar procesador predeterminado radioselect

jobStatus = forms.ChoiceField(widget=forms.RadioSelect()) 

Sin embargo, hace que los botones de opción de <ul> <li> .. </li></ul> etiquetas.

¿Podría sugerirme alguna forma de presentar la única entrada de botón de radio?

Gracias

Respuesta

8

Este es un buen cómo-a para anular el procesador de la radio seleccione Widget.

https://wikis.utexas.edu/display/~bm6432/Django-Modifying+RadioSelect+Widget+to+have+horizontal+buttons

Básicamente, crear una clase que hereda de la clase forms.RadioFieldRenderer y anular el método render. Luego, en su forma al configurar el widget, use el argumento de renderizador para configurar el renderizador en su clase de procesador personalizada.

Dicho esto, suelo cambiar la apariencia usando CSS

+0

¡Trabaja perfecto gracias! ¿Hay alguna convención general en la que este tipo de procesadores personalizados deberían estar en el árbol del proyecto? – brsbilgic

+1

Creo que dependerá de si planea reutilizar el procesador en otras formas. Si no, lo pondría en el mismo archivo forms.py que el formulario, de lo contrario con el resto de sus fragmentos "util" o "misc" e importarlo desde allí. – DTing

Cuestiones relacionadas