如何将Django Filters的ModelMultipleChoiceFilter从多选输入转换为复选框列表
解决ModelMultipleChoiceFilter改为复选框列表的问题
很简单就能实现这个需求!你只需要给ModelMultipleChoiceFilter添加一个widget参数,指定使用Django内置的CheckboxSelectMultiple组件即可。
首先,记得先导入这个组件:
from django.forms.widgets import CheckboxSelectMultiple
然后修改你的GameFilter类:
class GameFilter(django_filters.FilterSet): gamemodes = django_filters.ModelMultipleChoiceFilter( queryset=GameMode.objects.all(), label='Game modes (or)', widget=CheckboxSelectMultiple # 添加这一行即可实现复选框列表 )
这样渲染出来的gamemodes过滤器就会变成一组复选框,用户可以直接勾选多个选项,完全替代原来的下拉多选输入形式。这个组件是Django表单系统自带的,不需要额外安装依赖,适配性和易用性都很不错。
内容的提问来源于stack exchange,提问作者Sharpless512
相关产品推荐
相关产品推荐

