Django-bootstrap3: Label generiert mit show_label=False mit Checkbox

Erstellt am 28. Juli 2017  ·  8Kommentare  ·  Quelle: zostera/django-bootstrap3

{% bootstrap_field form.statut form_group_class='col-md-6' show_label=False %}
Das Feld form.statut ist ein Kontrollkästchen
HTML-Ergebnis:
<div class="col-md-6">
<div class="checkbox">
<label for="id_statut">
<input name="statut" class="" required="" id="id_statut" type="checkbox"> J'adhère aux
<a href="url_statuts.pdf" target="_blank">Statuten</a>
</label>
</div>
</div>

show_label hat keine Auswirkung. Die Ursache des Problems ist vielleicht:
FieldRenderer.put_inside_label() in post_widget_render() mit CheckBoxInput (renderers.py)

bug wontfix

Hilfreichster Kommentar

@dyve
Es kann gelöst werden, wenn Sie der Funktion unten "label_class=self.get_label_class()" hinzufügen

def put_inside_label(self, html):
        content = '{field} {label}'.format(
            field=html,
            label=self.label,
        )
        return render_label(
            content=mark_safe(content),
            label_for=self.field.id_for_label,
            label_title=escape(strip_tags(self.field_help)),
            label_class=self.get_label_class()
        )

Diese Funktion befindet sich in "bootstrap3/renderers.py"

Alle 8 Kommentare

Danke, sieht nach einem Bug aus. Sie haben schon einige Nachforschungen angestellt. Ein Pull Request mit Testfall wäre sehr willkommen.

Der Fehler ist echt.
Kommt der Fix bald?

@donvito-pl @kutera haben Sie die Möglichkeit, hierfür einen Pull-Request einzureichen?

Werde versuchen nachzuforschen, aber die Erfolgschancen sind nicht so hoch :)

"addon_before, label_class und field_class" funktionieren auch nicht mit Checkbox.
Das Kontrollkästchenfeld kann daher nicht als benutzerdefiniertes Feld verwendet werden.

@dyve
Es kann gelöst werden, wenn Sie der Funktion unten "label_class=self.get_label_class()" hinzufügen

def put_inside_label(self, html):
        content = '{field} {label}'.format(
            field=html,
            label=self.label,
        )
        return render_label(
            content=mark_safe(content),
            label_for=self.field.id_for_label,
            label_title=escape(strip_tags(self.field_help)),
            label_class=self.get_label_class()
        )

Diese Funktion befindet sich in "bootstrap3/renderers.py"

@nikolaysm

Dadurch wird das Kontrollkästchen ausgeblendet.

Vielleicht so etwas:

def put_inside_label(self, html):
        content = '{field} {label}'.format(
            field=html,
            >>>> label=self.label if self.show_label else ''
        )
        return render_label(
            content=mark_safe(content),
            label_for=self.field.id_for_label,
            label_title=escape(strip_tags(self.field_help))
        )

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität hatte. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen