Django Forms 和 bootstrap - 添加小部件有效但不完全

问题描述 投票:0回答:2

我的 django 表单中的引导程序有问题。在表格中我有这个代码:

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

在教程中我看到渲染正确的引导程序选择字段应该足够了。

但就我而言,它看起来像这样: 请注意:

  • 缺少指示右侧实际下拉列表的箭头
  • 灰色选择框不够宽,或者上面的框太宽?
  • 标签“Make:”看起来也不像正确的引导程序标签。

我检查了几个教程,但在所有教程中,在 attrs 中添加这个“{'class':'form-control'}”就足够了。我也在试验 django 脆皮形式,但它们也不完全正确。我错过了什么?我做错了什么?

django twitter-bootstrap bootstrap-4 django-forms django-crispy-forms
2个回答
4
投票

自 bootstrap 5 文档 https://getbootstrap.com/docs/5.0/forms/select/#default 你应该使用

.form-select
类来触发
<select>
元素的自定义样式,所以它应该是

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

.form-control
类用于
<input>
<textarea>
等元素。


0
投票

更新:2023

'field_name': forms.Select( attrs={'class': 'form-control'})

如果你在 Forms.py 中使用 widget

class Name(forms.ModelForm):
class Meta:
    model = modelName
    fields = {'field1', 'field1'}
    widgets = {
        'field1': forms.Select( attrs={'class': 'form-control'})
    }
© www.soinside.com 2019 - 2024. All rights reserved.