from rest_framework import serializers from .models import Label, Project, Document from .models import DocumentAnnotation, SequenceAnnotation, Seq2seqAnnotation class LabelSerializer(serializers.ModelSerializer): class Meta: model = Label fields = ('id', 'text', 'shortcut', 'background_color', 'text_color') class DocumentAnnotationSerializer(serializers.ModelSerializer): label = LabelSerializer() class Meta: model = DocumentAnnotation fields = ('id', 'prob', 'label') class DocumentSerializer(serializers.ModelSerializer): labels = DocumentAnnotationSerializer(source='doc_annotations', many=True) class Meta: model = Document fields = ('id', 'text', 'labels') class SequenceAnnotationSerializer(serializers.ModelSerializer): label = LabelSerializer() class Meta: model = SequenceAnnotation fields = ('id', 'prob', 'label', 'start_offset', 'end_offset') class SequenceSerializer(serializers.ModelSerializer): labels = SequenceAnnotationSerializer(source='seq_annotations', many=True) class Meta: model = Document fields = ('id', 'text', 'labels') class Seq2seqAnnotationSerializer(serializers.ModelSerializer): class Meta: model = Seq2seqAnnotation fields = ('id',) class Seq2seqSerializer(serializers.ModelSerializer): pass class ProjectSerializer(serializers.ModelSerializer): labels = LabelSerializer(many=True) documents = DocumentSerializer(many=True) class Meta: model = Project fields = ('id', 'name', 'description', 'users', 'labels', 'documents')