38 lines
1.4 KiB
Python
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__' |