Я видел несколько постов с одинаковыми вопросами, но, к сожалению, ни один из ответов не сработал. Я использую Django Crispy Fields и пытаюсь отображать свои радио кнопки горизонтально. Я использую вспомогательный макет, чтобы добавить опцию inline к переключателям, но это не влияет на результат, когда я отображаю свои поля как crispy_fields. Вот код для моей формы:
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout
from crispy_forms.bootstrap import InlineRadios, Div
CHOICES = [
(1, 'Strongly Disagree'),
(2, 'Disagree'),
(3, 'Neutral'),
(4, 'Agree'),
(5, 'Strongly Agree'),
]
class SelfKnowledgeAndAttitudeForm(forms.Form):
def __init__(self, *args, **kwargs):
from itertools import chain
language = kwargs.pop('language', None)
super().__init__(*args, **kwargs)
self_knowledge = asmodels.SelfKnowledgeIndicator.objects.all()
attitude = asmodels.AttitudeIndicator.objects.all()
result_list = list(chain(self_knowledge, attitude))
for item in result_list:
if type(item) == asmodels.SelfKnowledgeIndicator:
field_name = 'sf-%s' % item.id
else:
field_name = 'at-%s' % item.id
if language.lower() == 'english':
description = item.description_english
else:
description = item.description_chinese
self.fields[field_name] = forms.ChoiceField(label=description,
required=True,
widget=forms.RadioSelect,
choices=CHOICES)
self.helper = FormHelper()
self.helper.layout = Layout(
InlineRadios(field_name)
)