from rest_framework import serializers from api.models import Project, DataFile from api.serializers.data_serializers import DataFileSerializer class ProjectSerializer(serializers.ModelSerializer): """项目序列化器""" class Meta: model = Project fields = ['id', 'name', 'created_at', 'last_modified', 'status'] read_only_fields = ['id', 'created_at', 'last_modified', 'status'] class ProjectDetailSerializer(serializers.ModelSerializer): """项目详情序列化器""" data_files = DataFileSerializer(many=True, read_only=True) active_data_file = DataFileSerializer(read_only=True) data_files_count = serializers.SerializerMethodField() class Meta: model = Project fields = ['id', 'name', 'description', 'created_at', 'last_modified', 'status', 'data_files', 'active_data_file', 'data_files_count'] read_only_fields = ['id', 'created_at', 'last_modified', 'status'] def get_data_files_count(self, obj): return obj.data_files.count()