Django 表单和引导程序 - 添加小部件有效但不完全

Posted

技术标签:

【中文标题】Django 表单和引导程序 - 添加小部件有效但不完全【英文标题】:Django Forms and bootstrap - adding widgets works but not fully 【发布时间】:2021-04-08 23:58:18 【问题描述】:

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

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

在教程中我看到它应该足以呈现正确的引导选择字段。

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

缺少指示右侧实际下拉菜单的箭头 灰色选择框不够宽,还是上方的框太宽? 标签“Make:”看起来也不像正确的引导标签。

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

【问题讨论】:

【参考方案1】:

从 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> 等元素。

【讨论】:

以上是关于Django 表单和引导程序 - 添加小部件有效但不完全的主要内容,如果未能解决你的问题,请参考以下文章

Django 和引导程序,为啥我的小部件不起作用?

将类添加到 django 表单小部件字段

Django 中的复杂表单小部件

动态自定义 django 表单小部件

Django-Select2 重型小部件

在引导模式中提交 Django 表单