瀏覽代碼

REST API optimizations

jeremystretch 4 年之前
父節點
當前提交
264652f2c3
共有 3 個文件被更改,包括 8 次插入4 次删除
  1. 3 2
      netbox/ipam/api/serializers.py
  2. 2 2
      netbox/ipam/api/views.py
  3. 3 0
      netbox/ipam/models/fhrp.py

+ 3 - 2
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',
         ]
 
 

+ 2 - 2
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
 

+ 3 - 0
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})'