widgets layouts form crispy bootstrap forms django-forms radio-button django-crispy-forms

layouts - forms.form django



Django Crispy Forms: reemplace etiquetas y botones de radio con imágenes (1)

Soy el desarrollador principal de formas crujientes. Puede hacer esto usando Field objeto de diseño de Field y usando una plantilla personalizada.

Field(''field_name'', template="custom_inline_radio.html")

Otra opción que tiene es crear su propio objeto de disposición subclassing InlineRadio . De esa manera solo tendrías que hacer:

CustomInlineRadio(''field_name'')

En realidad, lo que intentas hacer es básicamente anular el resultado de un widget predeterminado en Django y eso probablemente tenga más sentido si usas un widget personalizado en tu formulario Django, las formas crujientes se jugarán bien con él. Escribí un artículo sobre widgets y formularios de Django que podría interesarte.

Tengo un formulario donde un cierto campo es un selector de radio con 3 opciones. Digamos que esto representa Bueno, Más o Menos, y Malo.

Logré ponerlos en la misma línea con InlineRadio, así:

self.helper.layout = Layout(InlineRadio(field_name))

Ahora, necesito 2 cosas:

1) reemplace cada opción, que se representa como un botón de radio y su etiqueta con una imagen predefinida.

2) Agregue 2 imágenes, una a la izquierda y otra a la derecha de los botones de opción. Entonces, al final, tendré 5 imágenes seguidas. De izquierda a derecha: Image of Smile (just the image) - Image of selector (Good) - Image of selector (More-or-Less) - Image of selector (Bad) - Image of Sad face (just the image )

¿Es posible lograrlos con django-crujiente? Si no, ¿cómo puedo lograr esto?

Gracias por adelantado.