Kaynağa Gözat

Apply column hiding before prefetching

Jeremy Stretch 2 gün önce
ebeveyn
işleme
bd35afe320

+ 13 - 0
netbox/netbox/tables/tables.py

@@ -185,6 +185,19 @@ class BaseTable(tables.Table):
             columns = getattr(self.Meta, 'default_columns', self.Meta.fields)
 
         self._set_columns(columns)
+
+        # Apply column inclusion/exclusion (overrides user preferences)
+        if include_columns := request.GET.get('include_columns'):
+            include_columns = include_columns.split(',')
+            for column in self.columns:
+                if column.name not in self.exempt_columns and column.name not in include_columns:
+                    self.columns.hide(column.name)
+        elif exclude_columns := request.GET.get('exclude_columns'):
+            exclude_columns = exclude_columns.split(',')
+            for column_name in exclude_columns:
+                if column_name in self.columns.names():
+                    self.columns.hide(column_name)
+
         self._apply_prefetching()
         if ordering is not None:
             self.order_by = ordering

+ 0 - 12
netbox/netbox/views/generic/mixins.py

@@ -97,16 +97,4 @@ class TableMixin:
             table.columns.show('pk')
         table.configure(request)
 
-        # Apply column inclusion/exclusion (overrides user preferences)
-        if include_columns := request.GET.get('include_columns'):
-            include_columns = include_columns.split(',')
-            for column in table.columns:
-                if column.name not in table.exempt_columns and column.name not in include_columns:
-                    table.columns.hide(column.name)
-        elif exclude_columns := request.GET.get('exclude_columns'):
-            exclude_columns = exclude_columns.split(',')
-            for column_name in exclude_columns:
-                if column_name in table.columns.names():
-                    table.columns.hide(column_name)
-
         return table