diff --git a/bothub/api/v2/example/serializers.py b/bothub/api/v2/example/serializers.py index 23f63ae6..84bcab4d 100644 --- a/bothub/api/v2/example/serializers.py +++ b/bothub/api/v2/example/serializers.py @@ -18,9 +18,7 @@ class Meta: 'start', 'end', 'entity', - 'entity_method', 'label', - 'label_method', 'created_at', 'value', ] @@ -30,8 +28,6 @@ class Meta: queryset=RepositoryExample.objects, help_text=_('Example\'s ID'), required=False) - entity_method = serializers.SerializerMethodField(required=False) - label_method = serializers.SerializerMethodField(required=False) entity = EntityValueField() label = LabelValueField( @@ -40,12 +36,13 @@ class Meta: def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + if kwargs.get('data') == 'GET': + self.fields['label'] = serializers.SerializerMethodField( + required=False + ) self.validators.append(EntityNotEqualLabelValidator()) - def get_entity_method(self, obj): - return obj.entity.value - - def get_label_method(self, obj): + def get_label(self, obj): if not obj.entity.label: return None return obj.entity.label.value diff --git a/bothub/api/v2/repository/serializers.py b/bothub/api/v2/repository/serializers.py index 1de40de4..2e4a2f0e 100644 --- a/bothub/api/v2/repository/serializers.py +++ b/bothub/api/v2/repository/serializers.py @@ -521,6 +521,13 @@ class Meta: def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + if kwargs['context'].get('request').stream is None: + self.fields['entities'] = \ + RepositoryExampleEntitySerializer( + many=True, + style={'text_field': 'text'}, + data='GET' + ) self.validators.append(ExampleWithIntentOrEntityValidator()) self.validators.append(IntentAndSentenceNotExistsValidator()) diff --git a/bothub/api/v2/tests/test_repository.py b/bothub/api/v2/tests/test_repository.py index 51fa90c4..0a5ccbcb 100644 --- a/bothub/api/v2/tests/test_repository.py +++ b/bothub/api/v2/tests/test_repository.py @@ -1430,7 +1430,7 @@ def test_entity_has_label(self): status.HTTP_200_OK) entity = content_data.get('entities')[0] self.assertIn( - 'label_method', + 'label', entity.keys()) def test_entity_has_valid_label(self): @@ -1445,10 +1445,10 @@ def test_entity_has_valid_label(self): status.HTTP_200_OK) entity = content_data.get('entities')[0] self.assertIn( - 'label_method', + 'label', entity.keys()) self.assertEqual( - entity.get('label_method'), + entity.get('label'), label)