14953 fix serializers when using add_related_count

This commit is contained in:
Arthur 2024-05-15 15:08:16 -07:00
parent 0b7804c01c
commit c967b4742e
4 changed files with 36 additions and 0 deletions

View File

@ -31,6 +31,12 @@ class RegionSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'site_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as tenant_count is added in the view with add_related_count
instance = super().create(request, *args, **kwargs)
instance.site_count = 0
return instance
class SiteGroupSerializer(NestedGroupModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='dcim-api:sitegroup-detail')
@ -45,6 +51,12 @@ class SiteGroupSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'site_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as tenant_count is added in the view with add_related_count
instance = super().create(request, *args, **kwargs)
instance.site_count = 0
return instance
class SiteSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='dcim-api:site-detail')
@ -96,3 +108,9 @@ class LocationSerializer(NestedGroupModelSerializer):
'tags', 'custom_fields', 'created', 'last_updated', 'rack_count', 'device_count', '_depth',
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'rack_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as tenant_count is added in the view with add_related_count
instance = super().create(request, *args, **kwargs)
instance.rack_count = 0
return instance

View File

@ -31,6 +31,12 @@ class ContactGroupSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'contact_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as tenant_count is added in the view with add_related_count
instance = super().create(request, *args, **kwargs)
instance.contact_count = 0
return instance
class ContactRoleSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:contactrole-detail')

View File

@ -24,6 +24,12 @@ class TenantGroupSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'tenant_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as tenant_count is added in the view with add_related_count
instance = super().create(request, *args, **kwargs)
instance.tenant_count = 0
return instance
class TenantSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenant-detail')

View File

@ -27,6 +27,12 @@ class WirelessLANGroupSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'wirelesslan_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as tenant_count is added in the view with add_related_count
instance = super().create(request, *args, **kwargs)
instance.wirelesslan_count = 0
return instance
class WirelessLANSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslan-detail')