cnas/server/apps/crm/serializers.py

38 lines
1.5 KiB
Python

from rest_framework import serializers
from .models import Enterprise,EnterpriseAddress
from apps.system.serializers import DictSerializer
class EnterpriseAddressSerializer(serializers.ModelSerializer):
class Meta:
model = EnterpriseAddress
fields = '__all__'
class EnterpriseListSerializer(serializers.ModelSerializer):
type = DictSerializer()
economy_class = DictSerializer()
class Meta:
model = Enterprise
fields = ['id','query_code', 'code', 'name','ename','type','legal','build_time','person_count','ceramics_output','gassets','linkman1_name','linkman1_tel','linkman1_mobile','country_code','parent','credit_code','professional','all_person','economy_class','economy_type','linkman1_duty','business_type']
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.select_related('type','economy_class')
queryset = queryset.prefetch_related('enterpriseaddress_enterprise',)
return queryset
class EnterpriseSerializer(serializers.ModelSerializer):
address_ = EnterpriseAddressSerializer(source='enterpriseaddress_enterprise', many=True)
class Meta:
model = Enterprise
fields = '__all__'
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
# queryset = queryset.select_related('type','economy_class')
queryset = queryset.prefetch_related('enterpriseaddress_enterprise',)
return queryset