Skip to main content

Intelligent management for multiple subclass models in django's admin site.

Project description

pip install django-msms-admin

Intelligent management for multiple subclass models in django's admin site.

Install

pip install django-msms-admin

Installed Classes

  • DjangoMsmsModelAbstractBase

    The base model must inherit from DjangoMsmsModelAbstractBase class. It provides app_label, model_name, type_name fields and auto save the values.

  • DjangoMsmsAdmin

    The base model admin must inherit from DjangoMsmsAdmin class.

  • DjangoSubclassAdmin

    All subclass models' admin must inherit from DjangoSubclassAdmin class.

Configurations

  • DjangoMsmsAdmin.subclasses

    The config item is used to provide choices in select_subclass_model_view. If NOT provide, the system will auto find all registered subclasses. The structure of subclasses is a three-level-tree. e.g.

    subclasses = [{
        "title": "category1",
        "children": [{
            "title": "category11",
            "children: [
                Model1,
                Model2,
                Model3,
            ]
        },{
            "title": "category12",
            "children": [
                Model4,
                Model5,
                Model6,
            ]
        }]
    },{
        "title": "category2",
        "children": [{
            "title": "category21",
            "children": [
                Model7,
                Model8,
            ]
        },{
            "title": "category22,
            "children": [
                Model9,
            ]
        }]
    }]
    
  • DjangoMsmsModelAbstractBase.cascade_select_description

  • DjangoMsmsModelAbstractBase.cascade_select_image

    Config item cascade_select_description and cascade_select_image are use to display more information while you selected a subclass. cascade_select_image is url string of an image.

Usage

pro/settings.py

INSTALLED_APPS = [
    ...
    'django_simple_tags',
    'django_static_jquery3',
    'django_msms_admin',
    ...
]

app/model.py

from django.db import models
from django.contrib.staticfiles.templatetags.staticfiles import static
from django_msms_admin.models import DjangoMsmsModelAbstractBase

class Book(DjangoMsmsModelAbstractBase, models.Model):
    title = models.CharField(max_length=64)
    author = models.CharField(max_length=64)

    def __str__(self):
        return self.title

class ComputerBook(Book):
    serial = models.CharField(max_length=64)

    cascade_select_description = "These books are all about computers."
    cascade_select_image = static("app/img/computer-book.jpg")

class NovelBook(Book):
    country = models.CharField(max_length=64)

app/admin.py

from django.contrib import admin
from django_msms_admin.admin import DjangoMsmsAdmin
from django_msms_admin.admin import DjangoSubclassAdmin

from .models import Book
from .models import ComputerBook
from .models import NovelBook

class BookAdmin(DjangoMsmsAdmin, admin.ModelAdmin):

    list_display = ["title", "author", "type_name"]
    list_filter = ["type_name"]


admin.site.register(Book, BookAdmin)
admin.site.register(ComputerBook, DjangoSubclassAdmin)
admin.site.register(NovelBook, DjangoSubclassAdmin)

Release

v0.2.1 2020/09/09

  • No depends on django-static-jquery3.
  • Using media.css & media.js to render css/js links.
  • Add LICENSE file.

v0.2.0 2020/03/07

  • Use model's msms_category, msm_priority property to do model category and sorting.
  • Rename cascade_select_description to msms_description.
  • Rename cascade_select_preview_image to msms_image.

v0.1.2 2020/03/06

  • Fix keywords in setup.py and read requirements.txt for install_requires.

v0.1.1 2020/03/05

  • Add DjangoMsmsModelAbstractBase.get_real_object method.

v0.1.0 2020/03/03

  • First release.

Project details


Download files

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

Files for django-msms-admin, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size django-msms-admin-0.2.1.tar.gz (9.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page