Skip to main content

Adds nested inline support in Django admin

Project description

# django-nested-inlines

##I am not the author, I am simply publishing Alain Trinh’s work, with SilverFix’es bugfixes and improvements.

## SilverFix’es bugfix & changes - [inlines.js] Fixed severe bug with number of TOTAL_FORMS when adding a new nested - [tabular.html] Fixed look ‘n feel of the nested table (dynamic colspan handling) - [admin.py] Fixed exception using it with a no-deletable inline - [project structure] Deleted inlines.min.js - [admin.py] NestedModelAdmin was pointing to wrong js filename - [admin.py] Fixed a bug that would be skip any custom validation in clean() method

## Overview

[Django issue #9025](http://code.djangoproject.com/ticket/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.

### Issues

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!

## Installation

pip install django-nested-inlines

## Usage

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.

## Example

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):

inlines = [MyInline,]

admin.site.register(A, MyAdmin)

## Credits

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](https://github.com/stefanklug/django/tree/nested-inline-support-1.5.x).

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-nested-inlines-0.1.tar.gz (8.0 kB view details)

Uploaded Source

File details

Details for the file django-nested-inlines-0.1.tar.gz.

File metadata

File hashes

Hashes for django-nested-inlines-0.1.tar.gz
Algorithm Hash digest
SHA256 c3a1ba86ff00aa175b8d4b703f895523cfebda6756f5583a33ec2e82a7d7cd68
MD5 19f50a80e2ab7beb39866cfbcbf4dec9
BLAKE2b-256 a25e31d3871a49ed098c9c55d93c26d6717d8d0c8b225d3906015afe93f7fb35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page