Skip to main content

A Django app to allow for readonly admin inlines without relationship to the base model

Project description

Django Simulated Inlines

Built with Spacemacs

Description

This package extends the ModelAdmin interface with the possibility to create custom inlines that can contain a list of any Model instances, the relationship with the base change_form is not needed.

Features

  • inlines can be collapsed
  • supports inline subtitles
  • pagination
  • custom links for any inline cell
  • dynamic fields
  • action buttons

Installation

  1. Install: pip install django_simulated_inlines
  2. add to INSTALLED_APPS:
    INSTALLED_APPS = [
        ...
        'django_simulated_inlines',
    ]

How to Use

  • Import the ModelAdmin and Inline classes

from django_simulated_inlines.admin import SimulatedInline, SimulatedInlinesModelAdmin

  • Declarating inlines:
class ExampleInline(SimulatedInline):
    model = ExampleModel
    verbose_name = _("example")
    verbose_name_plural = _("examples")
    per_page = 20
    buttons = ("example_button", )
    collapse = True
    fields = (
        "id"
        ("custom_link", "/admin/custom/link/%s/"),
        "custom_field",
    )

    def custom_field(self, obj):
        """The return of this function is the value on the field cell"""
        return f"Custom field for {self.field}"
    custom_field.short_description = _("custom field")

    def example_button(self, request, object_id):
        """This function is called when the button is pressed"""
        execute_code()
    example_button.short_description = _("Execute example button")

    def get_subtitle(self, request, object_id):
        """Override this to define a subtitle for the inline"""
        return "this is a subtitle"

    def get_queryset(self, request, object_id, parent_queryset):
       """Override this to filter or customize de queryset"""
       return self.model.objects.filter(x=object_id).all()
  • Add the inlines to the SimulatedInlinesModelAdmin.simulated_inlines.
class ExampleModelAdmin(SimulatedInlinesModelAdmin):
    simulated_inlines = [ExampleSimulatedInline]

Requirements

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_simulated_inlines-0.1.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

django_simulated_inlines-0.1-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file django_simulated_inlines-0.1.tar.gz.

File metadata

  • Download URL: django_simulated_inlines-0.1.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for django_simulated_inlines-0.1.tar.gz
Algorithm Hash digest
SHA256 80f28f624d1abfc4463286ea0410905b6fa70ed546c7ce8c9d66dd21f3ab61ce
MD5 40146117406df3d6cf8ceb253150187f
BLAKE2b-256 58d197d767724d0680a5e3551038e034000d568c1109d4dfcd6c7af2bd8c94ae

See more details on using hashes here.

File details

Details for the file django_simulated_inlines-0.1-py3-none-any.whl.

File metadata

  • Download URL: django_simulated_inlines-0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for django_simulated_inlines-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 66d698867a3474f0229460a7137f54313d0382f49dd3063d424f0230328c74b0
MD5 739b8b1fd87d693fa795b110ede41662
BLAKE2b-256 b62583298bd015c59bb85e35cd8a2de31f2473c43e7b72c5798897e425b81429

See more details on using hashes here.

Supported by

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