Coverage for apis_core/relations/serializers.py: 0%
18 statements
« prev ^ index » next coverage.py v7.5.3, created at 2025-10-10 13:36 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2025-10-10 13:36 +0000
1from drf_spectacular.utils import extend_schema_field
2from rest_framework.serializers import SerializerMethodField
4from apis_core.generic.serializers import (
5 GenericHyperlinkedModelSerializer,
6 SimpleObjectSerializer,
7 serializer_factory,
8)
11class RelationSerializer(GenericHyperlinkedModelSerializer):
12 subj = SerializerMethodField()
13 obj = SerializerMethodField()
15 class Meta:
16 exclude = (
17 "subj_content_type",
18 "subj_object_id",
19 "obj_content_type",
20 "obj_object_id",
21 )
23 @extend_schema_field(SimpleObjectSerializer())
24 def get_subj(self, obj):
25 if obj.subj:
26 serializer = serializer_factory(type(obj.subj), SimpleObjectSerializer)
27 return serializer(
28 obj.subj, context={"request": self.context["request"]}
29 ).data
31 @extend_schema_field(SimpleObjectSerializer())
32 def get_obj(self, obj):
33 if obj.obj:
34 serializer = serializer_factory(type(obj.obj), SimpleObjectSerializer)
35 return serializer(
36 obj.obj, context={"request": self.context["request"]}
37 ).data