Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Adds nested inline support in Django admin
Python JavaScript
Branch: master

Merge pull request #4 from alexwhittemore/bugfix-alexw

Fixes force_unicode import error, thanks!
latest commit aaf995a223
@Soaa- authored



Django issue #9025

Patches have been submitted, and repositories forked, but no one likes to use either one. Now, nested inlines are available in an easy-to-install package.


The Javascript portion of this app is currently buggy. The Python portion should be solid. Please test and file issues and pull requests to improve it!


pip install -e git+git://


nested_inlines.admin contains three ModelAdmin subclasses to enable nested inline support: NestedModelAdmin, NestedStackedInline, and NestedTabularInline. To use them:

  1. Add nested_inlines to your INSTALLED_APPS before django.contrib.admin. This is because this app overrides certain admin templates and media.
  2. Import NestedModelAdmin, NestedStackedInline, and NestedTabularInline wherever you want to use nested inlines.
  3. On admin classes that will contain nested inlines, use NestedModelAdmin rather than the standard ModelAdmin.
  4. On inline classes, use Nested versions instead of the standard ones.
  5. Add an inlines = [MyInline,] attribute to your inlines and watch the magic happen.


from django.contrib import admin
from nested_inlines.admin import NestedModelAdmin, NestedStackedInline, NestedTabularInline
from models import A, B, C

class MyNestedInline(NestedTabularInline):
    model = C

class MyInline(NestedStackedInline):
    model = B
    inlines = [MyNestedInline,]

class MyAdmin(NestedModelAdmin):
    pass, MyAdmin)


This package is mainly the work of other developers. I've only taken their patches and packaged them nicely for ease of use. Credit goes to:

  • Gargamel for providing the base patch on the Django ticket.
  • Stefan Klug for providing a fork with the patch applied, and for bugfixes.

See Stefan Klug's repository.

Something went wrong with that request. Please try again.