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'})
)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)