from rest_framework import serializers from staff.models import Staff from utils.custom import MyCustomError class StaffSerializer(serializers.ModelSerializer): """ 员工序列化 """ class Meta: model = Staff fields = "__all__" def validate_idCode(self, value): # 从context中获取companyMid # companyMid = self.context.get('companyMid') # 当修改与创建时,检查idCode是否已存在 if self.instance: # Update case existing_staff = Staff.objects.exclude(id=self.instance.id).filter(idCode=value, companyMid=self.initial_data.get('companyMid')) else: # Create case existing_staff = Staff.objects.filter(idCode=value, companyMid=self.initial_data.get('companyMid')) if existing_staff.exists(): raise MyCustomError("该身份码已存在") return value