встроенные переключатели с хрустящим - PullRequest
0 голосов
/ 04 февраля 2020

Я видел несколько постов с одинаковыми вопросами, но, к сожалению, ни один из ответов не сработал. Я использую 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)
            )
...