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.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.