from rest_framework import serializers from .models import GroupBusinessTarget, EmployeePerformanceTarget, TargetAudit class GroupBusinessTargetSerializer(serializers.ModelSerializer): class Meta: model = GroupBusinessTarget fields = '__all__' class EmployeePerformanceTargetSerializer(serializers.ModelSerializer): class Meta: model = EmployeePerformanceTarget fields = '__all__' class TargetAuditSerializer(serializers.ModelSerializer): modification_date = serializers.DateTimeField(format='%Y-%m-%d %H:%M') modified_obj = serializers.SerializerMethodField() modified_field_verbose = serializers.SerializerMethodField() class Meta: model = TargetAudit fields = ('modified_obj', 'modified_field_verbose', 'old_value', 'new_value', 'modification_date', 'modified_by') def get_modified_obj(self, obj): target = obj.target_id return f"{target.year}-{target.primary_department}-{target.project_nature}" def get_modified_field_verbose(self, obj): # 获取模型类 model_class = obj.target_id._meta.model # 获取字段的 verbose_name field = model_class._meta.get_field(obj.modified_field) return field.verbose_name class EmployeeTargetAuditSerializer(serializers.ModelSerializer): modification_date = serializers.DateTimeField(format='%Y-%m-%d %H:%M') modified_obj = serializers.SerializerMethodField() modified_field_verbose = serializers.SerializerMethodField() class Meta: model = TargetAudit fields = ('modified_obj', 'modified_field_verbose', 'old_value', 'new_value', 'modification_date', 'modified_by') def get_modified_obj(self, obj): target = obj.target_id return f"{target.department}-{target.name}-{target.year}" def get_modified_field_verbose(self, obj): # 获取模型类 model_class = obj.target_id._meta.model # 获取字段的 verbose_name field = model_class._meta.get_field(obj.modified_field) return field.verbose_name