BertrandBordage / django-super-inlines

Adds useful features to inlines, such as the ability to nest them.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Django-super-inlines

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.

Usage

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.

  1. pip install django-super-inlines
  2. Add 'super_inlines', to INSTALLED_APPS before 'django.contrib.admin',
  3. If you use django-grappelli, add 'super_inlines.grappelli_integration', to INSTALLED_APPS before 'grappelli', and 'super_inlines',
  4. Inherit from SuperModelAdmin instead of ModelAdmin, SuperInlineModelAdmin instead of InlineModelAdmin, and use the class attribute inlines 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)

About

Adds useful features to inlines, such as the ability to nest them.

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:HTML 64.8%Language:JavaScript 24.3%Language:Python 10.9%