From a0d87b6c8b55d6599aabd592ffc6a609dfeab86a Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 22 Feb 2022 11:28:22 +0800 Subject: [PATCH] not work remark filter --- hb_server/apps/hrm/filters.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/hb_server/apps/hrm/filters.py b/hb_server/apps/hrm/filters.py index faf7aad..0fd0be5 100644 --- a/hb_server/apps/hrm/filters.py +++ b/hb_server/apps/hrm/filters.py @@ -5,12 +5,18 @@ from utils.mixins import DynamicFieldsFilterMixin class ClockRecordFilterSet(filters.FilterSet): create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte') create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte') - year = filters.DateFilter(field_name="create_time_date__year") - month = filters.DateFilter(field_name="create_time_date__month") + year = filters.NumberFilter(method='filter_year') + month = filters.NumberFilter(method='filter_month') class Meta: model = ClockRecord fields = ['create_by', 'create_time_start', 'create_time_end', 'year', 'month'] + def filter_year(self, queryset, name, value): + return queryset.filter(create_time_date__year=value) + + def filter_month(self, queryset, name, value): + return queryset.filter(create_time_date__month=value) + class EmployeeFilterSet(DynamicFieldsFilterMixin, filters.FilterSet): class Meta: @@ -19,8 +25,14 @@ class EmployeeFilterSet(DynamicFieldsFilterMixin, filters.FilterSet): class NotWorkRemarkFilterSet(filters.FilterSet): - year = filters.DateFilter(field_name="not_work_date__year") - month = filters.DateFilter(field_name="not_work_date__month") + year = filters.NumberFilter(method='filter_year') + month = filters.NumberFilter(method='filter_month') class Meta: model = NotWorkRemark - fields = ['year', 'month', 'user'] \ No newline at end of file + fields = ['year', 'month', 'user'] + + def filter_year(self, queryset, name, value): + return queryset.filter(not_work_date__year=value) + + def filter_month(self, queryset, name, value): + return queryset.filter(not_work_date__month=value) \ No newline at end of file