django-crispy-forms bootstrap 4: Как отображать флажки по горизонтали?

Кажется, я не могу заставить свой виджет CheckboxSelectMultiple отображаться горизонтально, используя django-crispy-forms/bootstrap4.

Я пробовал: указать его в виджетах формы: widgets = {'my_field': forms.CheckboxSelectMultiple(attrs={'class': 'form-check-inline'}),}

но флажки по-прежнему отображаются вертикально, и шаблон отображается следующим образом:

<div class="custom-control custom-checkbox"> <input type="checkbox" class="custom-control-input" name="my_field" id="id_my_field_2" value="2" class="form-check-inline"> <label class="custom-control-label" for="id_my_field_2">

Этот class=form-check-inline отображается красным цветом.

То же самое происходит, если я использую помощник хрустящих форм. self.helper.layout = Layout(Field('my_field', css_class="form-check-inline"))

Любая подсказка, почему это так? Может кто-нибудь предложить альтернативу?

p.s. : Настройки: CRISPY_TEMPLATE_PACK = bootstrap4 Шаблон: {% csrf_token %} {% load crispy_forms_tags %} {% crispy form form.helper %}

** Редактировать ** Мне удалось отобразить их, используя:

from django_crispy.bootstrap import InlineCheckboxes
self.helper.layout = Layout(InlineCheckboxes('my_field'))



Ответы (1)


person    schedule
comment
Пожалуйста, предоставьте некоторый контекст или небольшое объяснение, которое идет с кодом. - person Cfun; 05.10.2020
comment
вместо self.helper.layout = Layout(Field('my_field', css_class=form-check-inline)) попробуйте так: self.helper.layout = Layout(InlineRadios('my_field')) - person Aditi Singh; 07.10.2020
comment
Я имел в виду, отредактировав ваш ответ, чтобы люди его поняли. - person Cfun; 07.10.2020
comment
Спасибо, Адити, ваш ответ работает для переключателей. И я нашел InlineCheckboxes, которые работали для моего случая. Также добавил редактирование к моему вопросу. Однако не мог предоставить гораздо больше контекста ... - person Crowl; 12.10.2020