如何为django-filters的ModelChoiceFilter添加None筛选选项
完全可以实现,你只需要为ModelChoiceFilter新增null_label参数即可,该参数会自动在下拉选项中增加专门用于匹配字段为空(NULL)的选项,选中后会自动生成字段__isnull=True的查询条件。
修改后的代码示例:
class TransactionFilter(django_filters.FilterSet): merchant_group = django_filters.ModelChoiceFilter( field_name='merchant__merchant_group', empty_label="全部商户组", # 选中时不应用该筛选条件,可按需修改显示文字 null_label="无关联商户组", # 你需要的None选项,选中后筛选商户组为空的交易 queryset=MerchantGroup.objects.all().order_by('name') )
参数说明:
empty_label:对应下拉框的默认选项,选中时不对该字段做任何筛选,如果你不需要保留「不筛选」的选项,可将该参数设为None隐藏默认选项null_label:对应专门筛选NULL值的选项,显示文字可根据业务需求自定义
内容的提问来源于stack exchange,提问作者rcx935
相关产品推荐
相关产品推荐

