from utils import serializer from rest_framework import serializers from .models import * from apps.project.models import CertApp from apps.system.serializers import DictSimpleSerializer, UserSimpleSerializer class CertappSerializerX(serializers.ModelSerializer): cert_field_ = DictSimpleSerializer(source='cert_field', read_only=True) cccpv_class_ = DictSimpleSerializer(source='cccpv_class' , read_only=True) cnas_scopes_ = DictSimpleSerializer(source='cnas_scopes', many=True , read_only=True) create_by_ = UserSimpleSerializer(source='create_by', read_only=True) accept_by_ = UserSimpleSerializer(source='accept_by', read_only=True) class Meta: model = CertApp fields = '__all__' @staticmethod def setup_eager_loading(queryset): """ Perform necessary eager loading of data. """ queryset = queryset.select_related('cert_field', 'cccpv_class', 'create_by', 'accept_by') queryset = queryset.prefetch_related('cnas_scopes', 'member_certapp') return queryset