@@ -96,7 +96,7 @@ def create(self, validated_data):
9696
9797
9898class ResourceSerializer (ResourceListSerializer ):
99- additional_data = serializers .JSONField ( write_only = True , required = False )
99+ additional_data = serializers .SerializerMethodField ( )
100100 resource_data = ResourceDataField (source = "*" )
101101
102102 class Meta :
@@ -106,37 +106,12 @@ class Meta:
106106 "additional_data" ,
107107 ]
108108
109- def to_representation (self , instance ):
110- ret = super ().to_representation (instance )
111-
112- additional_data = None
113- if serializer := instance .content_type .resource_type .serializer_class :
109+ def get_additional_data (self , obj ):
110+ if serializer := obj .content_type .resource_type .serializer_class :
114111 if serializer .ADDITIONAL_DATA_SERIALIZER is not None :
115- additional_data = serializer .ADDITIONAL_DATA_SERIALIZER (instance .content_object ).data
116-
117- ret ['additional_data' ] = additional_data
118- return ret
119-
120- def _maybe_process_additional_data (self , instance , additional_data ):
121- if not additional_data :
122- return
112+ return serializer .ADDITIONAL_DATA_SERIALIZER (obj .content_object ).data
123113
124- if serializer := instance .content_type .resource_type .serializer_class :
125- if serializer and hasattr (serializer , 'process_additional_data' ):
126- logger .debug (f'Processing additional data for resource { str (instance .ansible_id )} ' )
127- serializer (instance .content_object ).process_additional_data (instance .content_object , additional_data )
128-
129- def create (self , validated_data ):
130- additional_data = validated_data .pop ('additional_data' , None )
131- instance = super ().create (validated_data )
132- self ._maybe_process_additional_data (instance , additional_data )
133- return instance
134-
135- def update (self , instance , validated_data ):
136- additional_data = validated_data .pop ('additional_data' , None )
137- instance = super ().update (instance , validated_data )
138- self ._maybe_process_additional_data (instance , additional_data )
139- return instance
114+ return None
140115
141116
142117class ResourceTypeSerializer (serializers .ModelSerializer ):
0 commit comments