diff --git a/apps/ecm/filters.py b/apps/ecm/filters.py index 6d8d37c3..d3497563 100644 --- a/apps/ecm/filters.py +++ b/apps/ecm/filters.py @@ -6,10 +6,16 @@ class EventFilterSet(filters.FilterSet): start_create = filters.DateTimeFilter(field_name="create_time", lookup_expr='gte') end_create = filters.DateTimeFilter(field_name="create_time", lookup_expr='lte') is_handled = filters.BooleanFilter(method='filter_is_handled') + cates__in = filters.CharFilter(method='filter_cates__in') + cates__code__in = filters.CharFilter(method='filter_cates__code__in') class Meta: model = Event - fields = ['cates', 'start_create', 'end_create', 'is_handled', 'area'] + fields = { + "cates": ["exact"], + "area": ["exact"], + "mark": ["exact"], + } def filter_is_handled(self, queryset, name, value): if value: # 我的 @@ -17,3 +23,13 @@ class EventFilterSet(filters.FilterSet): else: queryset = queryset.filter(handle_user=None) return queryset + + def filter_cates__in(self, queryset, name, value): + if value: + vals = value.split(',') + return queryset.filter(cates__in=vals) + + def filter_cates__code__in(self, queryset, name, value): + if value: + vals = value.split(',') + return queryset.filter(cates__code__in=vals) \ No newline at end of file