from apps.crm.models import Certunit, Enterprise from rest_framework import serializers from .models import * from apps.system.serializers import DictSimpleSerializer from apps.crm.serializers import EnterpriseSimpleSerializer from apps.crm.serializers import CertunitSimpleSerializer class CertificateSerializer(serializers.ModelSerializer): status_ = DictSimpleSerializer(source='status', read_only=True) enterprise_ = EnterpriseSimpleSerializer(source='certunit.enterprise', read_only=True) certunit_ = CertunitSimpleSerializer(source='certunit', read_only=True) class Meta: model = Certificate fields = '__all__' @staticmethod def setup_eager_loading(queryset): """ Perform necessary eager loading of data. """ queryset = queryset.select_related('certunit','certunit__enterprise') return queryset class CertificateCreateSerializer(serializers.ModelSerializer): number = serializers.CharField(read_only = True) status = serializers.CharField(read_only = True) class Meta: model = Certificate fields = '__all__' class CertificateSimpleSerializer(serializers.ModelSerializer): class Meta: model = Certificate fields = ['id', 'number'] # class CertificateListSerializer(serializers.ModelSerializer): # status_ = DictSerializer(source='status', read_only=True) # class Meta: # model = Certificate # fields = '__all__'