Procházet zdrojové kódy

Fixes #3116: Fix tagged_items count in tags API endpoint

Jeremy Stretch před 6 roky
rodič
revize
d8c9b1af27
3 změnil soubory, kde provedl 5 přidání a 2 odebrání
  1. 1 0
      CHANGELOG.md
  2. 3 1
      netbox/extras/api/views.py
  3. 1 1
      netbox/extras/views.py

+ 1 - 0
CHANGELOG.md

@@ -4,6 +4,7 @@
 
 * [#2621](https://github.com/digitalocean/netbox/issues/2621) - Upgrade Django requirement to 2.2 to fix object deletion issue in the changelog middleware
 * [#3112](https://github.com/digitalocean/netbox/issues/3112) - Fix ordering of interface connections list by termination B name/device
+* [#3116](https://github.com/digitalocean/netbox/issues/3116) - Fix `tagged_items` count in tags API endpoint
 
 ---
 

+ 3 - 1
netbox/extras/api/views.py

@@ -116,7 +116,9 @@ class TopologyMapViewSet(ModelViewSet):
 #
 
 class TagViewSet(ModelViewSet):
-    queryset = Tag.objects.annotate(tagged_items=Count('taggit_taggeditem_items'))
+    queryset = Tag.objects.annotate(
+        tagged_items=Count('taggit_taggeditem_items', distinct=True)
+    )
     serializer_class = serializers.TagSerializer
     filterset_class = filters.TagFilter
 

+ 1 - 1
netbox/extras/views.py

@@ -30,7 +30,7 @@ from .tables import ConfigContextTable, ObjectChangeTable, TagTable, TaggedItemT
 
 class TagListView(ObjectListView):
     queryset = Tag.objects.annotate(
-        items=Count('taggit_taggeditem_items')
+        items=Count('taggit_taggeditem_items', distinct=True)
     ).order_by(
         'name'
     )