You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.7 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. from rest_framework import serializers
  2. from .models import Label, Project, Document
  3. from .models import DocumentAnnotation, SequenceAnnotation, Seq2seqAnnotation
  4. class LabelSerializer(serializers.ModelSerializer):
  5. class Meta:
  6. model = Label
  7. fields = ('id', 'text', 'shortcut', 'background_color', 'text_color')
  8. class DocumentAnnotationSerializer(serializers.ModelSerializer):
  9. label = LabelSerializer()
  10. class Meta:
  11. model = DocumentAnnotation
  12. fields = ('id', 'prob', 'label')
  13. class DocumentSerializer(serializers.ModelSerializer):
  14. labels = DocumentAnnotationSerializer(source='doc_annotations', many=True)
  15. class Meta:
  16. model = Document
  17. fields = ('id', 'text', 'labels')
  18. class SequenceAnnotationSerializer(serializers.ModelSerializer):
  19. label = LabelSerializer()
  20. class Meta:
  21. model = SequenceAnnotation
  22. fields = ('id', 'prob', 'label', 'start_offset', 'end_offset')
  23. class SequenceSerializer(serializers.ModelSerializer):
  24. labels = SequenceAnnotationSerializer(source='seq_annotations', many=True)
  25. class Meta:
  26. model = Document
  27. fields = ('id', 'text', 'labels')
  28. class Seq2seqAnnotationSerializer(serializers.ModelSerializer):
  29. class Meta:
  30. model = Seq2seqAnnotation
  31. fields = ('id', 'text')
  32. class Seq2seqSerializer(serializers.ModelSerializer):
  33. labels = Seq2seqAnnotationSerializer(source='seq2seq_annotations', many=True)
  34. class Meta:
  35. model = Document
  36. fields = ('id', 'text', 'labels')
  37. class ProjectSerializer(serializers.ModelSerializer):
  38. class Meta:
  39. model = Project
  40. fields = ('id', 'name', 'description', 'users', 'project_type', 'image')