Set default=0 for annotated count fields

This commit is contained in:
Jeremy Stretch 2024-05-17 15:36:59 -04:00
parent accdb69e2e
commit 8de07a9b98
4 changed files with 7 additions and 43 deletions

View File

@ -21,7 +21,7 @@ __all__ = (
class RegionSerializer(NestedGroupModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='dcim-api:region-detail')
parent = NestedRegionSerializer(required=False, allow_null=True, default=None)
site_count = serializers.IntegerField(read_only=True)
site_count = serializers.IntegerField(read_only=True, default=0)
class Meta:
model = Region
@ -31,17 +31,11 @@ class RegionSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'site_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as site_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')
parent = NestedSiteGroupSerializer(required=False, allow_null=True, default=None)
site_count = serializers.IntegerField(read_only=True)
site_count = serializers.IntegerField(read_only=True, default=0)
class Meta:
model = SiteGroup
@ -51,12 +45,6 @@ class SiteGroupSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'site_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as site_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')
@ -98,8 +86,8 @@ class LocationSerializer(NestedGroupModelSerializer):
parent = NestedLocationSerializer(required=False, allow_null=True, default=None)
status = ChoiceField(choices=LocationStatusChoices, required=False)
tenant = TenantSerializer(nested=True, required=False, allow_null=True)
rack_count = serializers.IntegerField(read_only=True)
device_count = serializers.IntegerField(read_only=True)
rack_count = serializers.IntegerField(read_only=True, default=0)
device_count = serializers.IntegerField(read_only=True, default=0)
class Meta:
model = Location
@ -108,9 +96,3 @@ 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 rack_count is added in the view with add_related_count
instance = super().create(request, *args, **kwargs)
instance.rack_count = 0
return instance

View File

@ -21,7 +21,7 @@ __all__ = (
class ContactGroupSerializer(NestedGroupModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:contactgroup-detail')
parent = NestedContactGroupSerializer(required=False, allow_null=True, default=None)
contact_count = serializers.IntegerField(read_only=True)
contact_count = serializers.IntegerField(read_only=True, default=0)
class Meta:
model = ContactGroup
@ -31,12 +31,6 @@ class ContactGroupSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'contact_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as contact_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

@ -14,7 +14,7 @@ __all__ = (
class TenantGroupSerializer(NestedGroupModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenantgroup-detail')
parent = NestedTenantGroupSerializer(required=False, allow_null=True)
tenant_count = serializers.IntegerField(read_only=True)
tenant_count = serializers.IntegerField(read_only=True, default=0)
class Meta:
model = TenantGroup
@ -24,12 +24,6 @@ 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

@ -17,7 +17,7 @@ __all__ = (
class WirelessLANGroupSerializer(NestedGroupModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslangroup-detail')
parent = NestedWirelessLANGroupSerializer(required=False, allow_null=True, default=None)
wirelesslan_count = serializers.IntegerField(read_only=True)
wirelesslan_count = serializers.IntegerField(read_only=True, default=0)
class Meta:
model = WirelessLANGroup
@ -27,12 +27,6 @@ class WirelessLANGroupSerializer(NestedGroupModelSerializer):
]
brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'wirelesslan_count', '_depth')
def create(self, request, *args, **kwargs):
# this is required as wirelesslan_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')