Skip to main content

Group fieldsets or inlinegroups into tabs for django admin's changeform.

Project description

django-tabbed-changeform-admin

Group fieldsets or inlinegroups into tabs for django admin's changeform.

Install

pip install django-tabbed-changeform-admin

Usgae

pro/settings.py

Note:

  • We used jquery and jquery-ui's static files, so we MUST add django_static_jquery_ui in INSTALLED_APPS.
  • We override admin/change_form.html, so we MUST add django_tabbed_changeform_admin in INSTALLED_APPS.
INSTALLED_APPS = [
    ....
    'django_static_jquery_ui',
    'django_tabbed_changeform_admin',
    ...
]

app/admin.py

Note:

  • Create ModelAdmin based on DjangoTabbedChangeformAdmin.
  • Add a sepcial class name to every fieldset or inline group.
  • Add tabs property to admin. It's a list of (Tab-Name, Content-Class-Names) pair.
  • You can get tabs dynamically by overriding method get_tabs(self, request, object_id, form_url, extra_context).
from django.contrib import admin
from django_tabbed_changeform_admin.admin import DjangoTabbedChangeformAdmin
from .models import Book
from .models import Character


class CharacterInline(admin.TabularInline):
    model = Character
    extra = 0
    classes = ["tab-character-inline"]

class BookAdmin(DjangoTabbedChangeformAdmin, admin.ModelAdmin):
    save_on_top = True
    list_display = ["name", "published_time", "publisher"]
    fieldsets = [
        (None, {
            "fields": ["name"],
            "classes": ["tab-basic"],
        }),
        ("Publish Information", {
            "fields": ["published_time", "publisher"],
            "classes": ["tab-publish-info"],
        })
    ]
    inlines = [
        CharacterInline,
    ]

    tabs = [
        ("Basic Information", ["tab-basic", "tab-publish-info"]),
        ("Characters", ["tab-character-inline"]),
    ]

admin.site.register(Book, BookAdmin)

Releases

v0.1.6 2020/09/23

  • doc fix.

v0.1.5 2020/09/23

  • Remove django-static-jquery3 depends, using django vendor jquery.js instead.
    • Tips: put your js between "admin/js/vendor/jquery/jquery.js" and "admin/js/jquery.init.js".

v0.1.4 2020/09/23

  • Fix django_static_jquery3 upgrade problem.
  • Add app_requires.
  • Add LICENSE file.

v0.1.3 2020/03/21

  • Do deep copy in get_tabs, so that it will NOT chaos the original tabs setting.

v0.1.2 2020/03/18

  • Fix template problem while checking context variable django_tabbed_changeform_admin_tabs exists or not.

v0.1.1 2020/03/18

  • Set property tabs' default value to empty list. tabs = [].
  • Use django_tabbed_changeform_admin_tabs for the context variable, so it will NOT conflict with other applications.

v0.1.0 2020/03/17

  • First releases.

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-tabbed-changeform-admin-0.1.6.tar.gz (5.2 kB view details)

Uploaded Source

File details

Details for the file django-tabbed-changeform-admin-0.1.6.tar.gz.

File metadata

  • Download URL: django-tabbed-changeform-admin-0.1.6.tar.gz
  • Upload date:
  • Size: 5.2 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.2.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.6.8

File hashes

Hashes for django-tabbed-changeform-admin-0.1.6.tar.gz
Algorithm Hash digest
SHA256 8373be8f84d9b8d8d7c1de04d587789e61156ac21ef1edce344e6a17276423a8
MD5 e5923b031760bf1c45540ba73b66e5af
BLAKE2b-256 e8eff3ed2c51175e2636c31fd565a07c01939d2a4038da7f6e8458d65842841e

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