django django-forms django-templates

Aplicar estilos bootstrap a los formularios de django



django-forms django-templates (1)

Quiero usar bootstrap para obtener un diseño de sitio web decente, desafortunadamente no sé cómo aplicar estilo a los campos de formulario. Estoy hablando de esto:

<form class="form-horizontal" method="POST" action="."> {% csrf_token %} {{ form.title.label }} {{ form.title }} </form>

¿Cómo se supone que se debe diseñar esto? Intenté esto:

<form class="form-horizontal" method="POST" action="."> {% csrf_token %} <div class="form-control"> {{ form.title.label }} {{ form.title }} </div> </form>

Obviamente, esto no me dio los resultados deseados.

¿Cómo puedo aplicar estilos bootstrap a los formularios de django?


Si prefiere no usar herramientas de terceros, entonces esencialmente necesita agregar atributos a sus clases, prefiero hacerlo al tener una clase base de la cual mis formas de modelo heredan

class BootstrapModelForm(ModelForm): def __init__(self, *args, **kwargs): super(BootstrapModelForm, self).__init__(*args, **kwargs) for field in iter(self.fields): self.fields[field].widget.attrs.update({ ''class'': ''form-control'' })

Se puede ajustar fácilmente ... pero como puede ver, todos mis widgets de campo aplican la clase CSS de control de formulario

Puede ampliar esto para campos específicos si lo desea, aquí hay un ejemplo de un formulario heredado con un atributo aplicado

class MyForm(BootstrapModelForm): def __init__(self, *args, **kwargs): super(MyForm, self).__init__(*args, **kwargs) self.fields[''name''].widget.attrs.update({''placeholder'': ''Enter a name''})