Я хочу добавить MultipleChoiceField с виджетом CheckboxSelectMultiple к модели / форме, содержащей другие типы ввода. Мне интересно, как я могу сделать это и добавить классы для всего MultipleChoiceField, а также классы для каждого из вариантов (для bootstrap). Я попытался добавить класс ко всему MultipleChoiceField, используя:
preferred_subjects.widget.attrs.update({'class': 'form-control'})
, но это не работает. Даже если это произойдет, я также хочу добавить классы для каждого из вариантов, но я не уверен, как. Я обычно выводю формы, используя
{{ form|crispy }}
, но так как я хочу добавить классы к каждому из моих параметров MultipleChoiceField, я предполагаю, что мне нужно будет использовать
{% for option in fieldset %}
и добавлять классы, как каждый вывод. Но проблема в том, что у меня есть другие типы ввода в той же форме, к которым я не хочу добавлять имена классов.
Вот мой код:
class PersonalInformation(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=200, default='')
dob = models.DateTimeField('Date of birth (mm/dd/yyyy)', null=True, default=now)
subjects = model.CharField(max_length=200, default='')
class PersonalInformationForm(forms.ModelForm):
SUBS = (
('MATH', 'Maths'),
('ENG', 'English'),
)
subjects = forms.MultipleChoiceField(choices=SUBS, widget=forms.CheckboxSelectMultiple())
class Meta:
model = PersonalInformation
fields = ['first_name', 'gender', 'subjects']
Резюме. Я хочу вывести форму, содержащую все различные типы полей, и хочу добавить классы к полям и классы для параметров с помощью MultipleChoiceField, но не знаю, как.
Большое спасибо