Sfoglia il codice sorgente

set local_context_data serializer on device and vm to method

Dan Starner 6 anni fa
parent
commit
406708218b

+ 6 - 0
netbox/dcim/api/serializers.py

@@ -376,6 +376,7 @@ class DeviceSerializer(TaggitSerializer, CustomFieldModelSerializer):
     cluster = NestedClusterSerializer(required=False, allow_null=True)
     cluster = NestedClusterSerializer(required=False, allow_null=True)
     virtual_chassis = NestedVirtualChassisSerializer(required=False, allow_null=True)
     virtual_chassis = NestedVirtualChassisSerializer(required=False, allow_null=True)
     tags = TagListSerializerField(required=False)
     tags = TagListSerializerField(required=False)
+    local_context_data = serializers.SerializerMethodField()
 
 
     class Meta:
     class Meta:
         model = Device
         model = Device
@@ -411,6 +412,11 @@ class DeviceSerializer(TaggitSerializer, CustomFieldModelSerializer):
         data['device_bay'] = NestedDeviceBaySerializer(instance=device_bay, context=context).data
         data['device_bay'] = NestedDeviceBaySerializer(instance=device_bay, context=context).data
         return data
         return data
 
 
+    @swagger_serializer_method(serializer_or_field=serializers.DictField)
+    def get_local_context_data(self, obj):
+        """Used to strongly type the local_context_data field for Swagger generation
+        """
+        return obj.local_context_data
 
 
 class DeviceWithConfigContextSerializer(DeviceSerializer):
 class DeviceWithConfigContextSerializer(DeviceSerializer):
     config_context = serializers.SerializerMethodField()
     config_context = serializers.SerializerMethodField()

+ 7 - 0
netbox/virtualization/api/serializers.py

@@ -67,6 +67,7 @@ class VirtualMachineSerializer(TaggitSerializer, CustomFieldModelSerializer):
     primary_ip4 = NestedIPAddressSerializer(required=False, allow_null=True)
     primary_ip4 = NestedIPAddressSerializer(required=False, allow_null=True)
     primary_ip6 = NestedIPAddressSerializer(required=False, allow_null=True)
     primary_ip6 = NestedIPAddressSerializer(required=False, allow_null=True)
     tags = TagListSerializerField(required=False)
     tags = TagListSerializerField(required=False)
+    local_context_data = serializers.SerializerMethodField()
 
 
     class Meta:
     class Meta:
         model = VirtualMachine
         model = VirtualMachine
@@ -77,6 +78,12 @@ class VirtualMachineSerializer(TaggitSerializer, CustomFieldModelSerializer):
         ]
         ]
         validators = []
         validators = []
 
 
+    @swagger_serializer_method(serializer_or_field=serializers.DictField)
+    def get_local_context_data(self, obj):
+        """Used to strongly type the local_context_data field for Swagger generation
+        """
+        return obj.local_context_data
+
 
 
 class VirtualMachineWithConfigContextSerializer(VirtualMachineSerializer):
 class VirtualMachineWithConfigContextSerializer(VirtualMachineSerializer):
     config_context = serializers.SerializerMethodField()
     config_context = serializers.SerializerMethodField()