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 class AreaSimpleSerializer(CustomModelSerializer): class Meta: model = Area fields = ['id', 'name', 'level', 'cate'] class AreaSerializer(CustomModelSerializer): class Meta: model = Area fields = '__all__' class AreaCreateUpdateSerializer(CustomModelSerializer): class Meta: model = Area fields = ['name', 'level', 'number', 'visitor_yes', 'remployee_yes', 'employee_yes', 'belong_dept', 'count_people_min', 'count_people_max', 'count_people', 'cate'] class AccessCreateSerializer(CustomModelSerializer): class Meta: model = Access fields = ['type', 'area', 'obj_cate', 'obj'] class AccessSerializer(CustomModelSerializer): 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}