perf: 修改搜索

This commit is contained in:
ibuler
2023-12-20 20:47:04 +08:00
committed by Bryan
parent 55575e9f7f
commit 4d15e46ceb
4 changed files with 21 additions and 6 deletions

View File

@@ -123,13 +123,28 @@ class LabelViewSet(OrgBulkModelViewSet):
class LabeledResourceViewSet(OrgBulkModelViewSet):
model = LabeledResource
filterset_fields = ("label__name", "label__value", "res_type", "res_id", "label")
search_fields = filterset_fields
search_fields = []
serializer_classes = {
'default': serializers.LabeledResourceSerializer,
}
ordering_fields = ('res_type', 'date_created')
def filter_search(self, queryset):
keyword = self.request.query_params.get('search')
if not keyword:
return queryset
matched = []
for instance in queryset:
if keyword.lower() in str(instance.resource).lower():
matched.append(instance.id)
return queryset.filter(id__in=matched)
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.order_by('res_type')
return queryset
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
queryset = self.filter_search(queryset)
return queryset