Fixes #16624: Set allow_null=True on method fields that can return None

This commit is contained in:
Fabian Geisberger 2024-06-17 10:08:19 -04:00 committed by Jeremy Stretch
parent 2aec2e40e3
commit 96078ffdcc
4 changed files with 5 additions and 5 deletions

View File

@ -13,7 +13,7 @@ class ConnectedEndpointsSerializer(serializers.ModelSerializer):
""" """
Legacy serializer for pre-v3.3 connections Legacy serializer for pre-v3.3 connections
""" """
connected_endpoints_type = serializers.SerializerMethodField(read_only=True) connected_endpoints_type = serializers.SerializerMethodField(read_only=True, allow_null=True)
connected_endpoints = serializers.SerializerMethodField(read_only=True) connected_endpoints = serializers.SerializerMethodField(read_only=True)
connected_endpoints_reachable = serializers.SerializerMethodField(read_only=True) connected_endpoints_reachable = serializers.SerializerMethodField(read_only=True)
@ -22,7 +22,7 @@ class ConnectedEndpointsSerializer(serializers.ModelSerializer):
if endpoints := obj.connected_endpoints: if endpoints := obj.connected_endpoints:
return f'{endpoints[0]._meta.app_label}.{endpoints[0]._meta.model_name}' return f'{endpoints[0]._meta.app_label}.{endpoints[0]._meta.model_name}'
@extend_schema_field(serializers.ListField) @extend_schema_field(serializers.ListField(allow_null=True))
def get_connected_endpoints(self, obj): def get_connected_endpoints(self, obj):
""" """
Return the appropriate serializer for the type of connected object. Return the appropriate serializer for the type of connected object.

View File

@ -91,7 +91,7 @@ class CablePathSerializer(serializers.ModelSerializer):
class CabledObjectSerializer(serializers.ModelSerializer): class CabledObjectSerializer(serializers.ModelSerializer):
cable = CableSerializer(nested=True, read_only=True, allow_null=True) cable = CableSerializer(nested=True, read_only=True, allow_null=True)
cable_end = serializers.CharField(read_only=True) cable_end = serializers.CharField(read_only=True)
link_peers_type = serializers.SerializerMethodField(read_only=True) link_peers_type = serializers.SerializerMethodField(read_only=True, allow_null=True)
link_peers = serializers.SerializerMethodField(read_only=True) link_peers = serializers.SerializerMethodField(read_only=True)
_occupied = serializers.SerializerMethodField(read_only=True) _occupied = serializers.SerializerMethodField(read_only=True)

View File

@ -88,7 +88,7 @@ class DeviceSerializer(NetBoxModelSerializer):
] ]
brief_fields = ('id', 'url', 'display', 'name', 'description') brief_fields = ('id', 'url', 'display', 'name', 'description')
@extend_schema_field(NestedDeviceSerializer) @extend_schema_field(NestedDeviceSerializer(allow_null=True))
def get_parent_device(self, obj): def get_parent_device(self, obj):
try: try:
device_bay = obj.parent_bay device_bay = obj.parent_bay

View File

@ -39,7 +39,7 @@ class ScriptSerializer(ValidatedModelSerializer):
def get_display(self, obj): def get_display(self, obj):
return f'{obj.name} ({obj.module})' return f'{obj.name} ({obj.module})'
@extend_schema_field(serializers.CharField()) @extend_schema_field(serializers.CharField(allow_null=True))
def get_description(self, obj): def get_description(self, obj):
if obj.python_class: if obj.python_class:
return obj.python_class().description return obj.python_class().description