| 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() |