Skip to main content

Django admin inlines for unrelated models

Project description

django-nonrelated-inlines

Django admin inlines for unrelated models

CircleCI PyPI

Getting started

This app allows you to create admin inlines for models that don't have an explicit foreign key relationship.

To use, subclass your inline from NonrelatedStackedInline and add get_form_queryset and save_new_instance methods.

  • get_form_queryset(self, obj) returns all objects that should be shown in the inline formset.
  • save_new_instance(self, parent, instance) given a parent object and a new child object instance should associate the child object with the parent.

For example, let's assume we have Customer and Invoice models. Invoice objects are associated with a Customer if they share the same email address.

from nonrelated_inlines.admin import NonrelatedStackedInline


class CustomerInvoiceStackedInline(NonrelatedStackedInline):
    model = Invoice
    fields = [
        'id',
        'amount'
    ]

    def get_form_queryset(self, obj):
        return self.model.objects.filter(email=obj.email)

    def save_new_instance(self, parent, instance):
        instance.email = parent.email

When viewing an Customer instance, we fetch a queryset of all Invoice instances sharing the same email address. Similarly, when saving a new Invoice instance we make sure to set its email attribute to the same value as its parent Customer.

Project details


Download files

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

Source Distribution

django-nonrelated-inlines-0.1.1.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-nonrelated-inlines-0.1.1.tar.gz.

File metadata

  • Download URL: django-nonrelated-inlines-0.1.1.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.0

File hashes

Hashes for django-nonrelated-inlines-0.1.1.tar.gz
Algorithm Hash digest
SHA256 80d93f2c136d5cf25eddb7aae644afcd51db592a3e2cf685c120723abdb8b23b
MD5 918f5eb3e3fe17ab14adf080d17da3a4
BLAKE2b-256 0451a32c7e0c81fe6e8db73309e144be673d2902f68bf6bff4eb697909c393a6

See more details on using hashes here.

File details

Details for the file django_nonrelated_inlines-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: django_nonrelated_inlines-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.0

File hashes

Hashes for django_nonrelated_inlines-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f23eb021d1f0bbcc51a9efc80c19032d12f8a6e597cb40e6f3753d5a1e7a78c
MD5 f86c138fcd436785849d3aed1619af61
BLAKE2b-256 69d2ef7cdca3042a8f5e2ca58682ef8edf2c9054217b7481734580462dab5533

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