Skip to main content
Django Unfold provides powerful inline classes that extend Django’s built-in inline functionality with enhanced features like pagination, sorting, tabs, and custom styling.

Available Inline Classes

Unfold provides four main inline classes that inherit from Django’s base inline classes:

TabularInline

Display related objects in a compact table format

StackedInline

Display related objects in a detailed stacked format

GenericTabularInline

Tabular inline for generic foreign keys

GenericStackedInline

Stacked inline for generic foreign keys

Basic Usage

Import the inline classes from unfold.admin and use them just like Django’s built-in inlines:
admin.py
from django.contrib import admin
from unfold.admin import ModelAdmin, TabularInline, StackedInline
from .models import Author, Book

class BookInline(TabularInline):
    model = Book
    extra = 1
    fields = ['title', 'isbn', 'published_date']

@admin.register(Author)
class AuthorAdmin(ModelAdmin):
    inlines = [BookInline]

Tabular Inline

The TabularInline class displays related objects in a compact table format, ideal for models with fewer fields:
admin.py
from unfold.admin import TabularInline

class BookInline(TabularInline):
    model = Book
    extra = 1
    fields = ['title', 'isbn', 'published_date', 'pages']
    can_delete = True

Stacked Inline

The StackedInline class displays each related object with all its fields stacked vertically:
admin.py
from unfold.admin import StackedInline

class BookInline(StackedInline):
    model = Book
    extra = 1
    fieldsets = [
        ('Book Information', {
            'fields': ['title', 'isbn']
        }),
        ('Publishing Details', {
            'fields': ['published_date', 'publisher', 'pages']
        })
    ]

Generic Inlines

For models using Django’s contenttypes framework, use the generic inline classes:
admin.py
from django.contrib.contenttypes.admin import GenericTabularInline
from unfold.admin import ModelAdmin
from .models import Comment

class CommentInline(GenericTabularInline):
    model = Comment
    extra = 1
    fields = ['user', 'text', 'created_at']

@admin.register(Article)
class ArticleAdmin(ModelAdmin):
    inlines = [CommentInline]

Key Features

Unfold’s inline classes include several powerful features:

Pagination

Paginate large sets of related objects

Sortable

Drag-and-drop ordering for related objects

Inline Tabs

Organize inlines into tabs

Nonrelated

Display objects without foreign key relationships

Common Configuration Options

All Unfold inline classes support these common attributes:
formfield_overrides
dict
Dictionary of field type to widget mappings. Unfold provides optimized widget overrides by default.
readonly_preprocess_fields
dict
Dictionary of readonly field preprocessing functions.
ordering_field
str
Field name to use for drag-and-drop ordering. See Sortable Inlines.
per_page
int
Number of inline objects to display per page. Enables pagination when set. See Paginated Inlines.
hide_ordering_field
bool
Hide the ordering field from the inline display when using sortable inlines.
collapsible
bool
Make the inline collapsible to save space.

Next Steps

Explore the advanced inline features:

Inline Tabs

Organize multiple inlines in tabs

Fieldset Tabs

Create tabs within fieldsets

Model Tabs

Configure tabs at the model level
All Unfold inline classes automatically use the PaginationInlineFormSet or PaginationGenericInlineFormSet for enhanced pagination support.

Build docs developers (and LLMs) love