consumer serilizer

This commit is contained in:
caoqianming 2020-06-28 15:38:57 +08:00
parent 49948f0a4b
commit 3db94498d6
2 changed files with 22 additions and 3 deletions

View File

@ -35,6 +35,25 @@ class ConsumerSerializer(serializers.ModelSerializer):
subjects_name = serializers.StringRelatedField(source='subjects', many=True, read_only=True)
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
role_name = serializers.StringRelatedField(source='role', read_only=True)
class Meta:
model = Consumer
exclude = ('avatar','collects')
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.select_related('company','workscope', 'role')
queryset = queryset.prefetch_related('subjects',)
return queryset
class ConsumerDetailSerializer(serializers.ModelSerializer):
"""
客户详情序列化
"""
company_name = serializers.StringRelatedField(source='company', read_only=True)
subjects_name = serializers.StringRelatedField(source='subjects', many=True, read_only=True)
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
role_name = serializers.StringRelatedField(source='role', read_only=True)
perms = serializers.SerializerMethodField(read_only=True)
class Meta:
model = Consumer
@ -43,7 +62,7 @@ class ConsumerSerializer(serializers.ModelSerializer):
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.select_related('company','workscope')
queryset = queryset.select_related('company','workscope', 'role')
queryset = queryset.prefetch_related('subjects',)
return queryset

View File

@ -29,7 +29,7 @@ from utils.custom import CommonPagination
from .exports import export_consumer
from .models import Company, Consumer, PaySubject, SendCode, ConsumerPerm, ConsumerRole
from .serializers import CompanySerializer, ConsumerSerializer, ConsumerPermSerializer, ConsumerRoleSerializer
from .serializers import CompanySerializer, ConsumerSerializer, ConsumerPermSerializer, ConsumerRoleSerializer, ConsumerDetailSerializer
appid = 'wxf1e9471c93f05ad6'
secret = '4bf7f9bd6c52634586bbe792a1f0a834'
@ -320,7 +320,7 @@ class ConsumerMPLoginView(APIView):
openid = info['openid']
session_key = info['session_key']
consumer = Consumer.objects.get_or_create(openid = openid)[0]
serializer = ConsumerSerializer(instance=consumer)
serializer = ConsumerDetailSerializer(instance=consumer)
payload = jwt_payload_handler(consumer)
token = jwt_encode_handler(payload)
return Response({"token":token,"session_key":session_key, "openid":openid, "userinfo":serializer.data})