Django Admin Column Toggle is a reusable Django package that adds column toggle functionality to the Django admin interface. This allows users to show or hide columns in the list view of the Django admin site.
-
Install the package:
With poetry
poetry add django-admin-column-toggle
With pip
pip install django-admin-column-toggle
-
Add 'column_toggle' to your `INSTALLED_APPS` setting in your Django project:
INSTALLED_APPS = [ ... 'column_toggle', ]
-
Import `ColumnToggleModelAdmin` from `column_toggle.admin` and inherit it in your `ModelAdmin` class. For example:
from django.contrib import admin from column_toggle.admin import ColumnToggleModelAdmin from .models import YourModel @admin.register(YourModel) class YourModelAdmin(ColumnToggleModelAdmin): list_display = ('field1', 'field2', 'field3')
-
To set the default selected columns, add the `default_selected_columns` attribute in your `ModelAdmin` class:
@admin.register(YourModel) class YourModelAdmin(ColumnToggleModelAdmin): list_display = ('field1', 'field2', 'field3') default_selected_columns = ['field1', 'field2']
By doing this, only the specified columns ('field1' and 'field2' in this example) will be visible by default. Users can still toggle the visibility of other columns manually.
-
That's it! Now you should have column toggle functionality in the Django admin list view for the specified model.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.