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})'