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}