from django.db.models.base import Model from rest_framework import serializers from .models import * from apps.system.serializers import OrganizationSerializer,FileListSerializer,UserSimpleSerializer,OrganizationSimpleSerializer, FileSimpleSerializer class InspectItemSerializer(serializers.ModelSerializer): cate_name = serializers.StringRelatedField(source='cate', read_only=True) class Meta: model = InspectItem fields = '__all__' @staticmethod def setup_eager_loading(queryset): queryset = queryset.select_related('cate') return queryset class InspectTaskSerializer(serializers.ModelSerializer): create_by_ = UserSimpleSerializer(source='create_by', read_only=True) dept_count = serializers.SerializerMethodField() subtask_count = serializers.SerializerMethodField() class Meta: model = InspectTask fields = '__all__' def get_dept_count(obj): return InspectDept.objects.filter(subtask__inspecttask=obj, is_deleted=True).count() def get_subtask_count(obj): return SubInspectTask.objects.filter(inspecttask=obj, is_deleted=True).count()