Django CheckboxSelectMultiple - 如何添加滚动条?

4 投票
1 回答
2327 浏览
提问于 2025-04-17 22:06

我正在为我的模型创建添加/编辑视图。我有一个多对多的关系,想把它显示成复选框,而不是默认的多选下拉框。

我做了一些研究,发现我只需要在我的ModelForm中添加类似下面的内容:

    objects = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple(), queryset=RelatedObjects.objects.all())

这样就可以了。现在我的数据库里有很多相关对象的条目。

问题很简单:我该如何像默认的多选下拉框那样添加滚动条呢?

如果这很重要,我在模板中使用的是django-bootstrap3来渲染我的表单。

谢谢!

1 个回答

2

把高度属性传给SelectMultiple只会改变每个选择项的高度,这并不是你想要的效果。下面是我怎么做的。

在admin.py文件中添加:

Class Mycls:
    Media:
        js = ('js/hack.js',)

然后在你的statis/js/hack.js文件中,写一段JavaScript代码来调整那个列表的父级div的大小。要找到这个div的ID或类名,你需要使用浏览器的调试工具。举个例子:

$( document ).ready(function() {
  $(".filtered").attr('style', 'height:100px;overflow:scroll;');
});

撰写回答