For now, it only adds nested inlines (see Django#9025). But I also plan to add other features I developed for my own projects.
There is no unit tests for the moment, so use at your own risks.
It would be extremely useful if someone took time to write Selenium tests.
It’s only compatible with Django 1.7.2 to 1.7.8 (I tested) and probably 1.8. Don’t even try with previous versions, django-super-inlines relies on changes that happened between 1.6 and 1.7.2.
For design reasons, you can’t nest inlines inside tabular inlines, only inside stacked inlines.
- pip install django-super-inlines
- Add
'super_inlines',
toINSTALLED_APPS
before'django.contrib.admin',
- If you use django-grappelli, add
'super_inlines.grappelli_integration',
toINSTALLED_APPS
before'grappelli',
and'super_inlines',
- Inherit from
SuperModelAdmin
instead ofModelAdmin
,SuperInlineModelAdmin
instead ofInlineModelAdmin
, and use the class attributeinlines
in inlines as you do in model admins
Example usage:
from django.contrib.admin import TabularInline, StackedInline, site
from super_inlines.admin import SuperInlineModelAdmin, SuperModelAdmin
from .models import *
class RoomInlineAdmin(SuperInlineModelAdmin, TabularInline):
model = Room
class HouseInlineAdmin(SuperInlineModelAdmin, StackedInline):
model = House
inlines = (RoomInlineAdmin,)
class OwnerAdmin(SuperModelAdmin):
inlines = (HouseInlineAdmin,)
site.register(Owner, OwnerAdmin)