File size: 1,056 Bytes
e657e99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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()