Pregunta

Estoy usando crispy_forms y FormHelper.Tengo un campo modelo declarado como:

active = models.BooleanField(default=True)

Y en mi ModelForm, probé lo siguiente en mi Diseño:

    self.helper.layout = Layout(
                    ...
        InlineCheckboxes('active'),
        Field('active'),
                    ...

que ambos no proporcionan el resultado deseado:

Por favor mira Enlace de imágen

Mientras uso InlineCheckboxes, no veo la casilla de verificación y al usar solo Campo, no tiene el formato correcto.

Por favor ayuda

¿Fue útil?

Solución

Aquí está el enlace a la sección "Objetos de diseño Bootstrap" de los documentos de Crispy Forms.

Casillas de verificación en línea:Representa un campo Django formularios.MultipleChoiceField usando casillas de verificación en línea

InlineCheckboxes no es apropiado para el tipo de campo de su modelo.


Una forma ingeniosa de lograr lo que estás buscando es usar PrependedText con una cadena vacía para el text argumento.

...
PrependedText('active', ''),
...

Al examinar la fuente, parece que un campo booleano de forma predeterminada representa el <input> etiqueta dentro del <label> etiqueta.Usando el truco anterior, 'Activo' permanece en el <label> y el <input> se coloca donde cabría esperar:en un <div> con clase CSS "control".Compara lo siguiente:

PrependedText('active', ''):

  <div id="div_id_active" class="form-group">
    <label for="id_active" class="control-label">Active</label>

    <div class="controls">
      <div class="input-group">
        <input type="checkbox" name="active" class="checkboxinput" id="id_active" />
      </div>
    </div>
  </div>

Field('active'):

  <div class="form-group">
    <div id="div_id_active" class="checkbox">
      <div class="controls">
        <label for="id_active" class=""><input type="checkbox" name="active" class=
        "checkboxinput checkbox" id="id_active" /> Active</label>
      </div>
    </div>
  </div>

Actualizar

Confirmé que esto está solucionado en la rama de desarrollo de django-crispy-forms.

Haga referencia a este compromiso: 5c3a268

Y este problema de github: #267

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top