Browse Source

Regression fix: order_naturally() must come first in the queryset definition

Jeremy Stretch 8 years ago
parent
commit
fc7f88d2a2
1 changed files with 12 additions and 10 deletions
  1. 12 10
      netbox/dcim/views.py

+ 12 - 10
netbox/dcim/views.py

@@ -601,16 +601,18 @@ def device(request, pk):
     power_outlets = natsorted(
         PowerOutlet.objects.filter(device=device).select_related('connected_port'), key=attrgetter('name')
     )
-    interfaces = Interface.objects.filter(device=device, mgmt_only=False).select_related(
-        'connected_as_a__interface_b__device',
-        'connected_as_b__interface_a__device',
-        'circuit_termination__circuit',
-    ).order_naturally(device.device_type.interface_ordering)
-    mgmt_interfaces = Interface.objects.filter(device=device, mgmt_only=True).select_related(
-        'connected_as_a__interface_b__device',
-        'connected_as_b__interface_a__device',
-        'circuit_termination__circuit',
-    ).order_naturally(device.device_type.interface_ordering)
+    interfaces = Interface.objects.order_naturally(device.device_type.interface_ordering)\
+        .filter(device=device, mgmt_only=False).select_related(
+            'connected_as_a__interface_b__device',
+            'connected_as_b__interface_a__device',
+            'circuit_termination__circuit',
+        )
+    mgmt_interfaces = Interface.objects.order_naturally(device.device_type.interface_ordering)\
+        .filter(device=device, mgmt_only=True).select_related(
+            'connected_as_a__interface_b__device',
+            'connected_as_b__interface_a__device',
+            'circuit_termination__circuit',
+        )
     device_bays = natsorted(
         DeviceBay.objects.filter(device=device).select_related('installed_device__device_type__manufacturer'),
         key=attrgetter('name')