From ac1b4b6c3ed34ec21a6c70577380527c71a5badc Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 11 Jul 2024 15:57:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20mlogb=E5=A2=9E=E5=8A=A0=E7=AD=9B?= =?UTF-8?q?=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/wpm/filters.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/wpm/filters.py b/apps/wpm/filters.py index abaddda5..25a621b2 100644 --- a/apps/wpm/filters.py +++ b/apps/wpm/filters.py @@ -1,5 +1,5 @@ from django_filters import rest_framework as filters -from apps.wpm.models import SfLog, StLog, WMaterial, Mlog, Handover, Mgroup +from apps.wpm.models import SfLog, StLog, WMaterial, Mlog, Handover, Mgroup, Mlogb class SfLogFilter(filters.FilterSet): @@ -87,3 +87,24 @@ class HandoverFilter(filters.FilterSet): "recive_mgroup": ["exact"], "recive_mgroup__name": ["exact"], } + + +class MlogbFilter(filters.FilterSet): + type = filters.CharFilter(label="in/out", filter_method='filter_type') + class Meta: + model = Mlogb + fields = { + "mlog": ["exact"], + "mtask": ["exact"], + "material_in": ["exact", "isnull"], + "material_out": ["exact", "isnull"], + } + + def filter_type(self, queryset, name, value): + if value: + if value == 'in': + return queryset.filter(material_in__isnull=False) + elif value == 'out': + return queryset.filter(material_out__isnull=False) + return queryset + return queryset.none() \ No newline at end of file