From 3b5c95ac5d9fc74eb4af56ddfabda12d4a9814e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Sat, 25 Jun 2022 16:46:54 +0800 Subject: [PATCH] =?UTF-8?q?access=20=E8=BF=94=E5=9B=9E=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/am/serializers.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/am/serializers.py b/apps/am/serializers.py index 22a1539a..df6871e1 100644 --- a/apps/am/serializers.py +++ b/apps/am/serializers.py @@ -1,4 +1,7 @@ +from rest_framework import serializers from apps.am.models import Access, Area +from apps.hrm.models import Employee +from apps.system.models import Post from apps.utils.serializers import CustomModelSerializer from apps.system.serializers import PostSimpleSerializer @@ -25,13 +28,22 @@ class AreaCreateUpdateSerializer(CustomModelSerializer): class AccessCreateSerializer(CustomModelSerializer): class Meta: model = Access - fields = ['type', 'area', 'post'] + fields = ['type', 'area', 'obj_cate', 'obj'] class AccessSerializer(CustomModelSerializer): - area_ = AreaSimpleSerializer(source='area', read_only=True) - post_ = PostSimpleSerializer(source='post', read_only=True) + obj_ = serializers.SerializerMethodField() class Meta: model = Access fields = '__all__' + + def get_obj_(self, obj): + if obj.obj_cate == 'employee': + ep = Employee.objects.filter(id=obj.obj).first() + if ep: + return {'id': ep.id, 'name': ep.name} + elif obj.obj_cate == 'post': + pt = Post.objects.filter(id=obj.obj).first() + if pt: + return {'id': pt.id, 'name': pt.name}