from django.db.models.base import Model from rest_framework import serializers from .models import * from apps.system.serializers import OrganizationSerializer,FileListSerializer,UserSimpleSerializer,OrganizationSimpleSerializer class ContentSerializer(serializers.ModelSerializer): type_ = serializers.SerializerMethodField() class Meta: model = Content fields = '__all__' @staticmethod def setup_eager_loading(queryset): """ Perform necessary eager loading of data. """ queryset = queryset.select_related('type') return queryset def get_type_ (self, obj): data = obj.type.name if obj.type.pid: data = obj.type.pid.name + '/' + data return data class ContentListSerializer(serializers.ModelSerializer): class Meta: model = Content fields = ['name', 'desc'] class TaskCreateUpdateSerializer(serializers.ModelSerializer): class Meta: model = Task fields = ['name', 'end_date', 'note', 'id'] class TaskListSerializer(serializers.ModelSerializer): class Meta: model = Task fields = ['name', 'is_self', 'end_date', 'note', 'complete_rate', 'state', 'id'] class RecordSerializer(serializers.ModelSerializer): files_ = FileListSerializer(source='files', many=True, read_only=True) task_ = TaskListSerializer(source='task') content_=ContentListSerializer(source='content') class Meta: model = Record fields = ('id', 'up_date', 'up_user', 'end_date', 'state', 'is_yes', 'note', 'noteb','content','content_','task_','task', 'files', 'files_') class TaksDetailSerializer(serializers.ModelSerializer): create_by_ = UserSimpleSerializer(source='create_by', read_only = True) belong_dept_ = OrganizationSimpleSerializer(source='belong_dept', read_only=True) class Meta: model = Task fields = '__all__'