Skip to main content

Welcome to Django Admin Tabs

Django Admin Tabs provides a powerful way to organize your Django admin interfaces with tabs and nested changelists - all without requiring any JavaScript. Build complex admin interfaces using familiar Django admin classes while maintaining a clean, organized user experience.

Installation

Get started by installing Django Admin Tabs with pip or poetry

Quick Start

Build your first tabbed admin interface in minutes

AdminTab

Learn about basic admin tabs for splitting forms into separate views

AdminChangeListTab

Discover nested changelists filtered by parent objects

What is Django Admin Tabs?

Django Admin Tabs extends Django’s built-in admin interface to support tabbed navigation and nested changelists. Instead of displaying all fields and related objects on a single page, you can organize them into logical tabs that load independently. Each tab is rendered at a separate URL and saves independently from other tabs. This approach provides better organization for complex models without requiring custom JavaScript or frontend frameworks.

Key Features

No JavaScript Required

Built entirely with Django’s admin classes and templates - no custom JavaScript needed

Nested Changelists

Display filtered changelists for related models within parent model tabs

Seamless Integration

Works with existing Django admin classes, inlines, and custom forms

Library Compatibility

Compatible with popular admin libraries like django-object-actions

Use Cases

Django Admin Tabs is perfect for:
  • Complex models with many fields: Split large forms into logical sections across multiple tabs
  • Parent-child relationships: Display related objects in nested changelists filtered by the parent
  • Multi-step workflows: Guide users through data entry in a structured, step-by-step manner
  • Organized admin interfaces: Keep your admin clean and focused by separating concerns across tabs

How It Works

Django Admin Tabs provides three main components:
  1. AdminTab - A standard Django ModelAdmin that can be used as a tab in a tabbed interface
  2. AdminChangeListTab - A specialized admin class that renders a changelist filtered by a parent object
  3. TabbedModelAdmin - The main admin class that orchestrates tabs and handles navigation
All tab classes work as regular Django admin classes, so you can use standard Django admin features like fields, inlines, list_display, list_filter, and more.

Example Preview

Here’s a quick preview of what you can build with Django Admin Tabs:
from django.contrib import admin
from django_admin_tabs import AdminTab, AdminChangeListTab, TabbedModelAdmin

class PollAdminStep(AdminTab, admin.ModelAdmin):
    admin_tab_name = "Poll"
    fields = ("question",)
    inlines = (ChoiceInline,)

class AnswerAdmin(AdminChangeListTab, admin.ModelAdmin):
    admin_tab_name = "Answers"
    model = Answer
    fk_field = "choice__poll"
    parent_model = Poll
    list_display = ("timestamp", "choice")

@admin.register(Poll)
class PollAdmin(TabbedModelAdmin, admin.ModelAdmin):
    admin_tabs = [
        PollAdminStep,
        AnswerAdmin,
    ]
This creates a Poll admin with two tabs: one for editing the poll itself, and another showing all answers related to that poll.

Requirements

  • Python: 3.8 or higher
  • Django: 3.2 or higher

Next Steps

Install Django Admin Tabs

Follow the installation guide to add Django Admin Tabs to your project

Follow the Quick Start

Build your first tabbed admin interface with our step-by-step guide

Build docs developers (and LLMs) love