Saltar al contenido

Alinear botones de radio horizontalmente en formas de django

Solución:

Ese es el comportamiento del RadioField. Si desea que se renderice horizontalmente, cree un renderizador horizontal, como algo de la siguiente manera:

from django.utils.safestring import mark_safe

class HorizontalRadioRenderer(forms.RadioSelect.renderer):
  def render(self):
    return mark_safe(u'n'.join([u'%sn' % w for w in self]))


class ApprovalForm(forms.Form):
    approval = forms.ChoiceField(choices=APPROVAL_CHOICES,
                 initial=0,
                 widget=forms.RadioSelect(renderer=HorizontalRadioRenderer),
                                 )

Otra salida es cambiar el estilo de ul-> li list para mostrar: inline-block. Puedes hacer algo como eso

 <style>
 ul#youelementId li{
  display: inline-block;
  }
</style>

Espero que esto ayude al próximo lector.

Se me ocurrió una solución alternativa. Si está utilizando bootstrap para representar sus formularios, puede agregar la clase .form-check-inline a la entrada y el campo se mostrará horizontalmente. A continuación se enumera el código que muestra lo que estoy describiendo. Espero que esto ayude a alguien a no reinventar la rueda. Gracias por leer. Cuídate y que tengas un buen día.

                feature_type = forms.MultipleChoiceField(
                required=False,
                ...
                widget=forms.CheckboxSelectMultiple(attrs={'class': 'form-check-inline'})
                )

Esta imagen muestra un conjunto de botones de opción que se muestran horizontalmente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *