From 7ca2fdca89a6a2e0afb61b3134321ac95892fa0f Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 21 Dec 2022 20:04:49 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=20platform=20?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/api/asset/asset.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/assets/api/asset/asset.py b/apps/assets/api/asset/asset.py index bb2921717..cd4166390 100644 --- a/apps/assets/api/asset/asset.py +++ b/apps/assets/api/asset/asset.py @@ -31,6 +31,7 @@ __all__ = [ class AssetFilterSet(BaseFilterSet): type = django_filters.CharFilter(field_name="platform__type", lookup_expr="exact") category = django_filters.CharFilter(field_name="platform__category", lookup_expr="exact") + platform = django_filters.CharFilter(method='filter_platform') class Meta: model = Asset @@ -39,6 +40,13 @@ class AssetFilterSet(BaseFilterSet): "type", "category", "platform" ] + @staticmethod + def filter_platform(queryset, name, value): + if value.isdigit(): + return queryset.filter(platform_id=value) + else: + return queryset.filter(platform__name=value) + class AssetViewSet(SuggestionMixin, NodeFilterMixin, OrgBulkModelViewSet): """