From 11ced96400752a5c5a5491e3d11bd06a57929bb9 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 22 Aug 2023 14:28:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20ecm=20filter=20=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ecm/filters.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) 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