La casella di controllo Booleandfield non rende correttamente con crisi_forms usando bootstrap
-
20-12-2019 - |
Domanda
Sto usando crisi_forms e formhelper.Ho un campo del modello dichiarato come:
active = models.BooleanField(default=True)
.
E nel mio modelform, ho provato sia il seguente nel mio layout:
self.helper.layout = Layout(
...
InlineCheckboxes('active'),
Field('active'),
...
.
che non forniscono il risultato desiderato:
Si prega di vedere link immagine
Durante l'utilizzo di Inlineheckboxes, non vedo la casella di controllo e utilizzando solo campo, non è formattato correttamente.
Aiuto Aiuto
Soluzione
Ecco il link Alla sezione "Bootstrap Layout Objects" delle forme croccanti Documenti.
.Inlineheckboxes : Rende un Django Forms.MultipliceChoiceField Campo utilizzando le caselle di controllo Inline
Inlineheckboxes non è appropriato per il tipo di campo del modello.
.
Un modo hacky per ottenere ciò che stai cercando è usare PrependedText
con una stringa vuota per l'argomento text
.
...
PrependedText('active', ''),
...
.
.
Esaminando la fonte Sembra che un campo booleano per impostazione predefinito renda il tag <input>
all'interno del tag <label>
. Utilizzando l'hack sopra, 'attivo' rimane nel <label>
e il <input>
viene messo in cui ti aspetteresti: in un <div>
con classe CSS "Control". Confronta quanto segue:
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>
.
Aggiornamento
Ho confermato che questo è fissato nel ramo di dev di moduli Django-croccanti.
Riferimento Questo commit: 5c3a268
E questo problema GitHub: # 267