From 264652f2c38c17f13740f6115e930699b956f79c Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 2 Nov 2021 14:08:36 -0400 Subject: [PATCH] REST API optimizations --- netbox/ipam/api/serializers.py | 5 +++-- netbox/ipam/api/views.py | 4 ++-- netbox/ipam/models/fhrp.py | 3 +++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/netbox/ipam/api/serializers.py b/netbox/ipam/api/serializers.py index e2a3c1954..525ea393e 100644 --- a/netbox/ipam/api/serializers.py +++ b/netbox/ipam/api/serializers.py @@ -98,12 +98,13 @@ class AggregateSerializer(PrimaryModelSerializer): class FHRPGroupSerializer(PrimaryModelSerializer): url = serializers.HyperlinkedIdentityField(view_name='ipam-api:fhrpgroup-detail') + ip_addresses = NestedIPAddressSerializer(many=True, read_only=True) class Meta: model = FHRPGroup fields = [ - 'id', 'url', 'display', 'protocol', 'group_id', 'auth_type', 'auth_key', 'description', 'tags', - 'custom_fields', 'created', 'last_updated', + 'id', 'url', 'display', 'protocol', 'group_id', 'auth_type', 'auth_key', 'description', 'ip_addresses', + 'tags', 'custom_fields', 'created', 'last_updated', ] diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index 6199c0caf..dffe555e9 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -124,13 +124,13 @@ class IPAddressViewSet(CustomFieldModelViewSet): # class FHRPGroupViewSet(CustomFieldModelViewSet): - queryset = FHRPGroup.objects.prefetch_related('tags') + queryset = FHRPGroup.objects.prefetch_related('ip_addresses', 'tags') serializer_class = serializers.FHRPGroupSerializer filterset_class = filtersets.FHRPGroupFilterSet class FHRPGroupAssignmentViewSet(CustomFieldModelViewSet): - queryset = FHRPGroupAssignment.objects.prefetch_related('group') + queryset = FHRPGroupAssignment.objects.prefetch_related('group', 'object') serializer_class = serializers.FHRPGroupAssignmentSerializer filterset_class = filtersets.FHRPGroupAssignmentFilterSet diff --git a/netbox/ipam/models/fhrp.py b/netbox/ipam/models/fhrp.py index 3544c0a00..ee5a9a2be 100644 --- a/netbox/ipam/models/fhrp.py +++ b/netbox/ipam/models/fhrp.py @@ -95,3 +95,6 @@ class FHRPGroupAssignment(ChangeLoggedModel): ordering = ('priority', 'pk') unique_together = ('content_type', 'object_id', 'group') verbose_name = 'FHRP group assignment' + + def __str__(self): + return f'{self.object}: {self.group} ({self.priority})'