From f747cc817b9a8dc2fec2cee30d1878c46d40ffff Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 3 Nov 2023 19:13:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20testitem=E6=94=AF=E6=8C=81tag=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/qm/filters.py | 16 ++++++++++++++-- apps/qm/views.py | 6 ++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/apps/qm/filters.py b/apps/qm/filters.py index a70bbf1d..e8913875 100644 --- a/apps/qm/filters.py +++ b/apps/qm/filters.py @@ -1,5 +1,6 @@ from django_filters import rest_framework as filters -from apps.qm.models import QuaStat +from apps.qm.models import QuaStat, TestItem + class QuaStatFilter(filters.FilterSet): class Meta: @@ -11,4 +12,15 @@ class QuaStatFilter(filters.FilterSet): "sflog": ["exact"], "sflog__mgroup": ["exact"], "sflog__end_time": ["day", "month", "year", "lt"], - } \ No newline at end of file + } + + +class TestItemFilter(filters.FilterSet): + tag = filters.CharFilter(method='filter_tag') + + class Meta: + model = TestItem + fields = ['tag'] + + def filter_tag(self, queryset, name, value): + return queryset.filter(tags__contains=value) diff --git a/apps/qm/views.py b/apps/qm/views.py index 55dc8c64..c028eedc 100644 --- a/apps/qm/views.py +++ b/apps/qm/views.py @@ -10,7 +10,7 @@ import datetime from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from apps.wpm.models import SfLog -from apps.qm.filters import QuaStatFilter +from apps.qm.filters import QuaStatFilter, TestItemFilter # Create your views here. @@ -23,9 +23,7 @@ class TestItemViewSet(ListModelMixin, CustomGenericViewSet): perms_map = {'get': '*'} queryset = TestItem.objects.all() serializer_class = TestItemSerializer - filterset_fields = { - "tags": ["contains"] - } + filterset_class = TestItemFilter ordering = ['id']