Răsfoiți Sursa

Fixes #10803: Fix exception when ordering contacts by number of assignments

jeremystretch 3 ani în urmă
părinte
comite
7990cfb078
2 a modificat fișierele cu 9 adăugiri și 2 ștergeri
  1. 1 0
      docs/release-notes/version-3.3.md
  2. 8 2
      netbox/tenancy/views.py

+ 1 - 0
docs/release-notes/version-3.3.md

@@ -6,6 +6,7 @@
 
 * [#10282](https://github.com/netbox-community/netbox/issues/10282) - Enforce advisory locks when allocating available IP addresses to prevent race conditions
 * [#10770](https://github.com/netbox-community/netbox/issues/10282) - Fix social authentication for new users
+* [#10803](https://github.com/netbox-community/netbox/issues/10803) - Fix exception when ordering contacts by number of assignments
 
 ---
 

+ 8 - 2
netbox/tenancy/views.py

@@ -188,6 +188,8 @@ class ContactGroupView(generic.ObjectView):
 
         contacts = Contact.objects.restrict(request.user, 'view').filter(
             group=instance
+        ).annotate(
+            assignment_count=count_related(ContactAssignment, 'contact')
         )
         contacts_table = tables.ContactTable(contacts, user=request.user, exclude=('group',))
         contacts_table.configure(request)
@@ -338,14 +340,18 @@ class ContactBulkImportView(generic.BulkImportView):
 
 
 class ContactBulkEditView(generic.BulkEditView):
-    queryset = Contact.objects.all()
+    queryset = Contact.objects.annotate(
+        assignment_count=count_related(ContactAssignment, 'contact')
+    )
     filterset = filtersets.ContactFilterSet
     table = tables.ContactTable
     form = forms.ContactBulkEditForm
 
 
 class ContactBulkDeleteView(generic.BulkDeleteView):
-    queryset = Contact.objects.all()
+    queryset = Contact.objects.annotate(
+        assignment_count=count_related(ContactAssignment, 'contact')
+    )
     filterset = filtersets.ContactFilterSet
     table = tables.ContactTable