From d285daa1c1525beaf1f33b6759447afd92597dd2 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 30 May 2023 17:12:14 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=B5=84=E4=BA=A7=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=8D=8F=E8=AE=AE=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 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/assets/api/asset/asset.py b/apps/assets/api/asset/asset.py index ce5d8f9ac..82733b03e 100644 --- a/apps/assets/api/asset/asset.py +++ b/apps/assets/api/asset/asset.py @@ -35,6 +35,7 @@ class AssetFilterSet(BaseFilterSet): domain = django_filters.CharFilter(method='filter_domain') type = django_filters.CharFilter(field_name="platform__type", lookup_expr="exact") category = django_filters.CharFilter(field_name="platform__category", lookup_expr="exact") + protocols = django_filters.CharFilter(method='filter_protocols') domain_enabled = django_filters.BooleanFilter( field_name="platform__domain_enabled", lookup_expr="exact" ) @@ -78,6 +79,11 @@ class AssetFilterSet(BaseFilterSet): else: return queryset.filter(domain__name__contains=value) + @staticmethod + def filter_protocols(queryset, name, value): + value = value.split(',') + return queryset.filter(protocols__name__in=value) + @staticmethod def filter_labels(queryset, name, value): if ':' in value: