Closes #17143: Deprecate the use of dedicated nested API serializers

This commit is contained in:
Jeremy Stretch
2024-08-14 15:26:16 -04:00
parent 234b4027b0
commit e3d681be54
40 changed files with 345 additions and 217 deletions

View File

@@ -1,8 +1,8 @@
from drf_spectacular.utils import extend_schema_serializer
from rest_framework import serializers
import warnings
from netbox.api.serializers import WritableNestedSerializer
from wireless.models import *
from .serializers_.nested import NestedWirelessLANGroupSerializer, NestedWirelessLinkSerializer
__all__ = (
'NestedWirelessLANSerializer',
@@ -10,17 +10,11 @@ __all__ = (
'NestedWirelessLinkSerializer',
)
@extend_schema_serializer(
exclude_fields=('wirelesslan_count',),
# TODO: Remove in v4.2
warnings.warn(
f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
class NestedWirelessLANGroupSerializer(WritableNestedSerializer):
wirelesslan_count = serializers.IntegerField(read_only=True)
_depth = serializers.IntegerField(source='level', read_only=True)
class Meta:
model = WirelessLANGroup
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'wirelesslan_count', '_depth']
class NestedWirelessLANSerializer(WritableNestedSerializer):
@@ -28,10 +22,3 @@ class NestedWirelessLANSerializer(WritableNestedSerializer):
class Meta:
model = WirelessLAN
fields = ['id', 'url', 'display_url', 'display', 'ssid']
class NestedWirelessLinkSerializer(WritableNestedSerializer):
class Meta:
model = WirelessLink
fields = ['id', 'url', 'display_url', 'display', 'ssid']

View File

@@ -1,3 +1,2 @@
from .serializers_.wirelesslans import *
from .serializers_.wirelesslinks import *
from .nested_serializers import *

View File

@@ -0,0 +1,29 @@
from drf_spectacular.utils import extend_schema_serializer
from rest_framework import serializers
from netbox.api.serializers import WritableNestedSerializer
from wireless import models
__all__ = (
'NestedWirelessLANGroupSerializer',
'NestedWirelessLinkSerializer',
)
@extend_schema_serializer(
exclude_fields=('wirelesslan_count',),
)
class NestedWirelessLANGroupSerializer(WritableNestedSerializer):
wirelesslan_count = serializers.IntegerField(read_only=True)
_depth = serializers.IntegerField(source='level', read_only=True)
class Meta:
model = models.WirelessLANGroup
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'wirelesslan_count', '_depth']
class NestedWirelessLinkSerializer(WritableNestedSerializer):
class Meta:
model = models.WirelessLink
fields = ['id', 'url', 'display_url', 'display', 'ssid']

View File

@@ -6,7 +6,7 @@ from netbox.api.serializers import NestedGroupModelSerializer, NetBoxModelSerial
from tenancy.api.serializers_.tenants import TenantSerializer
from wireless.choices import *
from wireless.models import WirelessLAN, WirelessLANGroup
from ..nested_serializers import *
from .nested import NestedWirelessLANGroupSerializer
__all__ = (
'WirelessLANGroupSerializer',