Django Forms и bootstrap — добавление виджетов работает, но не полностью

#django #twitter-bootstrap #bootstrap-4 #django-forms #django-crispy-forms

#джанго #twitter-bootstrap #начальная загрузка-4 #django-forms #django-crispy-forms

Вопрос:

У меня проблема с bootstrap в моих формах django. В формах у меня есть этот код:

 make = forms.ChoiceField(choices=make_choices)
make.widget.attrs.update({'class': 'form-control'})
 

И в учебниках я видел, что этого должно быть достаточно, чтобы отобразить правильное поле выбора начальной загрузки.

Но в моем случае это выглядит так: введите описание изображения здесьПожалуйста, обратите внимание:

  • отсутствующая стрелка, указывающая на фактический выпадающий список справа
  • серое поле выбора недостаточно широкое, или, скорее, поле выше слишком широкое?
  • ярлык «Make:» также не похож на надлежащий ярлык начальной загрузки.

Я проверил несколько руководств, но во всех из них было достаточно добавить это «{‘class’: ‘form-control’}» в attrs. Я также экспериментировал с хрустящими формами django, но они также были не совсем правильными. Чего мне не хватает? Что я сделал не так?

Комментарии:

1. настройка напрямую тоже работает: make = forms. Поле выбора (выбор = make_choices, виджет = формы. Выберите(attrs={‘class’:’form-select’}),)

Ответ №1:

по состоянию на документы bootstrap 5 https://getbootstrap.com/docs/5.0/forms/select/#default вы должны использовать .form-select class для запуска пользовательских стилей для <select> элементов, поэтому он должен быть

 make.widget.attrs.update({'class': 'form-select'})
 

.form-control класс используется для таких элементов, как <input> и <textarea> .