django-filter如何用同一个筛选框删选不同类型的数据?


class PermisFilter(FilterSet):

    ap_num = django_filters.CharFilter()
    custom_filter = django_filters.DateFilter(method='_custom_filter', label="Filtrer (date de signature ou date d'expiration)")
    
    def _custom_filter(self, queryset, name, value):
        
        return queryset.filter(
            #Q(ap_num__icontains=value) |
            Q(ap_date_signature__icontains=value) |
            Q(ap_date_expiration__icontains=value)
        )

    class Meta:
        model = Permis
        fields = ()

我在用django-filter插件时,我的ap_num是CharField类型,但是我的ap_date_signature和ap_date_expiration是DateField类型。
如果我单独用django_filters.CharFilter和django_filters.DateFilter的话则会出现三个筛选框,我想在已经使用了custom_filter将两个DateField类型的数据放入同一筛选框进行筛选,

请问如何将CharField类型的ap_num也放进去,实现同一个筛选框可以检索三个数据的其中之一?

DateField和CharField先转换成同一种类型String,String前面添加一个标记比如C-代表CharField、D-代表DateField
value用函数转换成DateField和CharField,那个标记代表你要转换的类型