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