From 1134fc3809ccbf4514b5bd294be738769a84b758 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 27 Dec 2023 11:06:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20equip=E5=A2=9E=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E6=AE=B5=E7=AD=89=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/em/filters.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/em/filters.py b/apps/em/filters.py index 0e6c30af..192315b6 100644 --- a/apps/em/filters.py +++ b/apps/em/filters.py @@ -2,24 +2,29 @@ from django_filters import rest_framework as filters from apps.em.models import Equipment from datetime import datetime, timedelta + class EquipFilterSet(filters.FilterSet): tag = filters.CharFilter(method='filter_tag') + class Meta: model = Equipment fields = { "keeper": ["exact"], "type": ["exact"], "power_kw": ["gte"], - "belong_dept": ["exact"] + "belong_dept": ["exact"], + "belong_dept__name": ["exact"], + "mgroup": ["exact"], + "mgroup__name": ["exact"] } - + def filter_tag(self, queryset, name, value): now = datetime.now() day7_after = now + timedelta(days=7) if value == 'near_check': queryset = queryset.filter( - next_check_date__lt = datetime.date(day7_after), next_check_date__gte=datetime.date(now)) + next_check_date__lt=datetime.date(day7_after), next_check_date__gte=datetime.date(now)) elif value == 'out_check': queryset = queryset.filter( - next_check_date__lte = datetime.date(now)) - return queryset \ No newline at end of file + next_check_date__lte=datetime.date(now)) + return queryset