Apply column hiding before prefetching

This commit is contained in:
Jeremy Stretch
2026-04-01 14:14:13 -04:00
parent 364868a207
commit bd35afe320
2 changed files with 13 additions and 12 deletions

View File

@@ -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

View File

@@ -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