Skip to main content

Python Version Requirements

Django Admin Tabs requires Python 3.8 or higher.
pip install django-admin-tabs

Supported Python Versions

Python VersionSupport Status
3.8✅ Supported
3.9✅ Supported
3.10✅ Supported
3.11✅ Supported
3.7 or lower❌ Not supported

Django Version Requirements

Django Admin Tabs requires Django 3.2 or higher.

Supported Django Versions

Django VersionSupport Status
3.2 LTS✅ Supported
4.0✅ Supported
4.1✅ Supported
4.2 LTS✅ Supported
5.0✅ Supported
< 3.2❌ Not supported
Django Admin Tabs is tested against both LTS (Long Term Support) releases and intermediate versions to ensure broad compatibility.

Installation Requirements

After installing django-admin-tabs, add it to your Django project’s INSTALLED_APPS:
settings.py
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    
    # Add django_admin_tabs
    "django_admin_tabs",
    
    # Your apps
    "myapp",
]
Django Admin Tabs comes with built-in templates and CSS static files. No additional configuration is needed after adding it to INSTALLED_APPS.

Third-Party Library Compatibility

django-object-actions

Django Admin Tabs is fully compatible with django-object-actions, which adds object-level and model-level actions to the Django admin.
from django.contrib import admin
from django_object_actions import DjangoObjectActions
from django_admin_tabs import AdminTab, TabbedModelAdmin

class MyModelAdminStep(AdminTab, DjangoObjectActions, admin.ModelAdmin):
    admin_tab_name = "Details"
    change_actions = ("custom_action",)
    
    def custom_action(self, request, obj):
        # Your custom action logic
        pass

class MyModelAdmin(TabbedModelAdmin, admin.ModelAdmin):
    admin_tabs = [MyModelAdminStep]
When combining multiple mixins, place them in this order: AdminTab or AdminChangeListTab, then third-party mixins, then admin.ModelAdmin.

Other Admin Extensions

Django Admin Tabs should work with most Django admin extensions that:
  • Use standard Django admin mixins
  • Don’t heavily modify the admin templates
  • Don’t conflict with the tabbed navigation structure
If you encounter compatibility issues with other libraries, please report them on GitHub.

Known Limitations

Delete Button on Nested Changelists

The delete button does not work for individual objects in nested changelists and is therefore hidden.
The delete button is hidden on nested changelist detail pages. However, you can still delete objects using the changelist bulk action “Delete selected items”.
Workaround: To delete objects from nested changelists:
1

Navigate to the nested changelist tab

Go to the parent object’s admin page and click on the nested changelist tab.
2

Select objects to delete

Check the boxes next to the objects you want to delete.
3

Use the bulk delete action

Select “Delete selected items” from the action dropdown and click “Go”.

Why This Limitation Exists

The delete button limitation exists because:
  • Nested changelists use a different URL structure than regular admin pages
  • The delete confirmation page expects a standard admin URL pattern
  • Maintaining the proper redirect chain after deletion is complex in nested contexts
This limitation only affects the delete button on individual object pages. All other admin functionality, including list filters, search, and bulk actions, works as expected.

Browser Compatibility

Django Admin Tabs uses standard CSS (no JavaScript) and is compatible with all modern browsers that Django admin supports:
  • Chrome/Edge (latest)
  • Firefox (latest)
  • Safari (latest)
  • Opera (latest)

Database Compatibility

Django Admin Tabs works with any database backend supported by Django:
  • PostgreSQL
  • MySQL/MariaDB
  • SQLite
  • Oracle
No database-specific features are used, ensuring broad compatibility.

Build docs developers (and LLMs) love