cnas/server/apps/certificate/serializers.py

38 lines
1.4 KiB
Python

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__'