diff --git a/server/apps/supervision/filters.py b/server/apps/supervision/filters.py index a72bf80..fa5cc31 100644 --- a/server/apps/supervision/filters.py +++ b/server/apps/supervision/filters.py @@ -6,9 +6,10 @@ class RecordFilter(filters.FilterSet): date_lt = filters.DateFilter(field_name='up_date',lookup_expr="lt") date_gt = filters.DateFilter(field_name='up_date',lookup_expr="gt") belong_dept=filters.NumberFilter(field_name='belong_dept') - content_name = filters.CharFilter(field_name='content__name') + content__name = filters.CharFilter(field_name='content__name') + content__candoself = filters.BooleanFilter(field_name='content__candoself') state = filters.CharFilter(field_name='state',lookup_expr='icontains') - isself = filters.BooleanFilter(field_name='is_self', lookup_expr='isnull') + is_self = filters.BooleanFilter(field_name='is_self', lookup_expr='isnull') class Meta: model = Record - fields = ['up_date','content__name','belong_dept','state','is_self','task', 'content'] + fields = ['up_date','content__name','belong_dept','state','is_self','task', 'content', 'content__candoself'] diff --git a/server/apps/vod/serializers.py b/server/apps/vod/serializers.py index d2dac6e..9944712 100644 --- a/server/apps/vod/serializers.py +++ b/server/apps/vod/serializers.py @@ -19,6 +19,11 @@ class VRecordSerializer(serializers.ModelSerializer): class Meta: model = ViewRecord fields = '__all__' + @staticmethod + def setup_eager_loading(queryset): + queryset = queryset.select_related('user', 'video') + return queryset + class VRecordUpdateSerializer(serializers.ModelSerializer): class Meta: diff --git a/server/apps/vod/views.py b/server/apps/vod/views.py index 3607b9a..1a26f94 100644 --- a/server/apps/vod/views.py +++ b/server/apps/vod/views.py @@ -55,9 +55,9 @@ class VideoViewSet(PageOrNot, CreateUpdateModelAMixin, ModelViewSet): queryset = ViewRecord.objects.filter(user=request.user) page = self.paginate_queryset(queryset) if page is not None: - serializer = self.get_serializer(page, many=True) + serializer = VRecordSerializer(page, many=True) return self.get_paginated_response(serializer.data) - serializer = self.get_serializer(queryset, many=True) + serializer = VRecordSerializer(queryset, many=True) return Response(serializer.data)