mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-21 19:18:44 -06:00
Closes #17143: Deprecate the use of dedicated nested API serializers
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from drf_spectacular.utils import extend_schema_serializer
|
||||
from rest_framework import serializers
|
||||
import warnings
|
||||
|
||||
from netbox.api.serializers import WritableNestedSerializer
|
||||
from serializers_.nested import NestedContactGroupSerializer, NestedTenantGroupSerializer
|
||||
from tenancy.models import *
|
||||
|
||||
__all__ = [
|
||||
@@ -13,23 +13,17 @@ __all__ = [
|
||||
'NestedTenantSerializer',
|
||||
]
|
||||
|
||||
# TODO: Remove in v4.2
|
||||
warnings.warn(
|
||||
f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
|
||||
DeprecationWarning
|
||||
)
|
||||
|
||||
|
||||
#
|
||||
# Tenants
|
||||
#
|
||||
|
||||
@extend_schema_serializer(
|
||||
exclude_fields=('tenant_count',),
|
||||
)
|
||||
class NestedTenantGroupSerializer(WritableNestedSerializer):
|
||||
tenant_count = serializers.IntegerField(read_only=True)
|
||||
_depth = serializers.IntegerField(source='level', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = TenantGroup
|
||||
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'tenant_count', '_depth']
|
||||
|
||||
|
||||
class NestedTenantSerializer(WritableNestedSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -41,18 +35,6 @@ class NestedTenantSerializer(WritableNestedSerializer):
|
||||
# Contacts
|
||||
#
|
||||
|
||||
@extend_schema_serializer(
|
||||
exclude_fields=('contact_count',),
|
||||
)
|
||||
class NestedContactGroupSerializer(WritableNestedSerializer):
|
||||
contact_count = serializers.IntegerField(read_only=True)
|
||||
_depth = serializers.IntegerField(source='level', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = ContactGroup
|
||||
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'contact_count', '_depth']
|
||||
|
||||
|
||||
class NestedContactRoleSerializer(WritableNestedSerializer):
|
||||
|
||||
class Meta:
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
from .serializers_.tenants import *
|
||||
from .serializers_.contacts import *
|
||||
from .nested_serializers import *
|
||||
|
||||
@@ -8,7 +8,7 @@ from netbox.api.serializers import NestedGroupModelSerializer, NetBoxModelSerial
|
||||
from tenancy.choices import ContactPriorityChoices
|
||||
from tenancy.models import ContactAssignment, Contact, ContactGroup, ContactRole
|
||||
from utilities.api import get_serializer_for_model
|
||||
from ..nested_serializers import *
|
||||
from .nested import NestedContactGroupSerializer
|
||||
|
||||
__all__ = (
|
||||
'ContactAssignmentSerializer',
|
||||
|
||||
34
netbox/tenancy/api/serializers_/nested.py
Normal file
34
netbox/tenancy/api/serializers_/nested.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from drf_spectacular.utils import extend_schema_serializer
|
||||
from rest_framework import serializers
|
||||
|
||||
from netbox.api.serializers import WritableNestedSerializer
|
||||
from tenancy import models
|
||||
|
||||
__all__ = (
|
||||
'NestedContactGroupSerializer',
|
||||
'NestedTenantGroupSerializer',
|
||||
)
|
||||
|
||||
|
||||
@extend_schema_serializer(
|
||||
exclude_fields=('contact_count',),
|
||||
)
|
||||
class NestedContactGroupSerializer(WritableNestedSerializer):
|
||||
contact_count = serializers.IntegerField(read_only=True)
|
||||
_depth = serializers.IntegerField(source='level', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.ContactGroup
|
||||
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'contact_count', '_depth']
|
||||
|
||||
|
||||
@extend_schema_serializer(
|
||||
exclude_fields=('tenant_count',),
|
||||
)
|
||||
class NestedTenantGroupSerializer(WritableNestedSerializer):
|
||||
tenant_count = serializers.IntegerField(read_only=True)
|
||||
_depth = serializers.IntegerField(source='level', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.TenantGroup
|
||||
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'tenant_count', '_depth']
|
||||
@@ -3,7 +3,7 @@ from rest_framework import serializers
|
||||
from netbox.api.fields import RelatedObjectCountField
|
||||
from netbox.api.serializers import NestedGroupModelSerializer, NetBoxModelSerializer
|
||||
from tenancy.models import Tenant, TenantGroup
|
||||
from ..nested_serializers import *
|
||||
from .nested import NestedTenantGroupSerializer
|
||||
|
||||
__all__ = (
|
||||
'TenantGroupSerializer',
|
||||
|
||||
Reference in New Issue
Block a user