fix: Task search error

pull/15547/head
wangruidong 2025-06-10 16:14:56 +08:00 committed by 老广
parent b70fb58faf
commit 4713c6ddf6
1 changed files with 11 additions and 4 deletions

View File

@ -109,7 +109,6 @@ class CelerySummaryAPIView(generics.RetrieveAPIView):
class CeleryTaskFilterSet(BaseFilterSet):
id = drf_filters.CharFilter(field_name='id', lookup_expr='exact')
name = drf_filters.CharFilter(method='filter_name')
@staticmethod
@ -127,7 +126,7 @@ class CeleryTaskFilterSet(BaseFilterSet):
class Meta:
model = CeleryTask
fields = ['id', 'name']
fields = ['name']
class CeleryTaskViewSet(
@ -135,7 +134,7 @@ class CeleryTaskViewSet(
mixins.ListModelMixin, mixins.DestroyModelMixin,
viewsets.GenericViewSet
):
search_fields = ('id', 'name')
search_fields = ('name',)
filterset_class = CeleryTaskFilterSet
serializer_class = CeleryTaskSerializer
@ -206,6 +205,14 @@ class CeleryTaskViewSet(
i.state = summary_state_dict.get(i.name, {}).get('state', 'green')
return queryset
def filter_queryset(self, queryset):
search = self.request.query_params.get('search')
if search:
queryset = CeleryTaskFilterSet.filter_name(queryset, 'name', search)
else:
queryset = super().filter_queryset(queryset)
return queryset
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
queryset = self.mark_periodic_and_sorted(queryset)
@ -241,7 +248,7 @@ class CeleryTaskExecutionViewSet(CommonApiMixin, viewsets.ModelViewSet):
serializer_class = CeleryTaskExecutionSerializer
http_method_names = ('get', 'post', 'head', 'options',)
queryset = CeleryTaskExecution.objects.all()
search_fields = ('name',)
search_fields = ('id',)
def get_queryset(self):
task_id = self.request.query_params.get('task_id')