Procházet zdrojové kódy

fix: SerializedPKRelatedField schema now use nested serializer or response

Sami Tahri před 2 roky
rodič
revize
79b9ef7d0c
1 změnil soubory, kde provedl 11 přidání a 0 odebrání
  1. 11 0
      netbox/core/api/schema.py

+ 11 - 0
netbox/core/api/schema.py

@@ -255,3 +255,14 @@ class NetBoxAutoSchema(AutoSchema):
         if '{id}' in self.path:
         if '{id}' in self.path:
             return f"{self.method.capitalize()} a {model_name} object."
             return f"{self.method.capitalize()} a {model_name} object."
         return f"{self.method.capitalize()} a list of {model_name} objects."
         return f"{self.method.capitalize()} a list of {model_name} objects."
+
+
+class FixSerializedPKRelatedField(OpenApiSerializerFieldExtension):
+    target_class = 'netbox.api.fields.SerializedPKRelatedField'
+
+    def map_serializer_field(self, auto_schema, direction):
+        if direction == "response":
+            component = auto_schema.resolve_serializer(self.target.serializer, direction)
+            return component.ref if component else None
+        else:
+            return build_basic_type(OpenApiTypes.INT)