You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 17:54:04