ソースを参照

Annotate need for natural ordering

jeremystretch 3 年 前
コミット
00d72f18cf
1 ファイル変更5 行追加6 行削除
  1. 5 6
      netbox/dcim/views.py

+ 5 - 6
netbox/dcim/views.py

@@ -589,19 +589,18 @@ class RackElevationListView(generic.ObjectListView):
         racks = filtersets.RackFilterSet(request.GET, self.queryset).qs
         total_count = racks.count()
 
+        # Ordering
         ORDERING_CHOICES = {
             'name': 'Name (A-Z)',
             '-name': 'Name (Z-A)',
             'facility_id': 'Facility ID (A-Z)',
             '-facility_id': 'Facility ID (Z-A)',
         }
-        sort = request.GET.get('sort', "name")
+        sort = request.GET.get('sort', 'name')
         if sort not in ORDERING_CHOICES:
             sort = 'name'
-        sort_choice = sort
-        sort = sort.replace("name", "_name")
-
-        racks = racks.order_by(sort)
+        sort_field = sort.replace("name", "_name")  # Use natural ordering
+        racks = racks.order_by(sort_field)
 
         # Pagination
         per_page = get_paginate_count(request)
@@ -624,7 +623,7 @@ class RackElevationListView(generic.ObjectListView):
             'page': page,
             'total_count': total_count,
             'sort': sort,
-            'sort_display_name': ORDERING_CHOICES[sort_choice],
+            'sort_display_name': ORDERING_CHOICES[sort],
             'sort_choices': ORDERING_CHOICES,
             'rack_face': rack_face,
             'filter_form': forms.RackElevationFilterForm(request.GET),