XH_Digital_Management/application/perf_mgnt/serializers.py

57 lines
2.0 KiB
Python

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