cma_search/server/apps/quality/serializers.py

33 lines
1.1 KiB
Python

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()