greg

 
CRM - 自制admin
my_admin app, settings INSTALLED_APP 添加
——————————————自定义myAdmin模块———————————————————
创一个myAdmin的模块
import models (数据库) from crm import models
 
enable_admins={} 创一个空字典 为了储存下面这种格式
enable_admins可以获得{‘crm': {'customer': <class 'my_admin.myAdmin.CustomerAdmin'>, 'customerfollowup': <class 'my_admin.myAdmin.CustomerFollowUpAdmin'>}}
enable_admins[‘crm’][‘customer’]可以获得<class 'my_admin.myAdmin.CustomerAdmin'>
enable_admins[‘crm’][‘customer’].model可以获得<class 'crm.models.Customer'>
 
class BaseAdmin 类似admin中的ModelAdmin - list_display=[], list_filter=[]…
 
自定义的admin 如 class CustomerAdmin(BaseAdmin):
 
 
CRM - 自制admin
my_admin app, settings INSTALLED_APP 添加
——————————————自定义myAdmin模块———————————————————
创一个myAdmin的模块
import models (数据库) from crm import models
 
enable_admins={} 创一个空字典 为了储存下面这种格式
enable_admins可以获得{‘crm': {'customer': <class 'my_admin.myAdmin.CustomerAdmin'>, 'customerfollowup': <class 'my_admin.myAdmin.CustomerFollowUpAdmin'>}}
enable_admins[‘crm’][‘customer’]可以获得<class 'my_admin.myAdmin.CustomerAdmin'>
enable_admins[‘crm’][‘customer’].model可以获得<class 'crm.models.Customer'>
 
class BaseAdmin 类似admin中的ModelAdmin - list_display=[], list_filter=[]…
 
自定义的admin 如 class CustomerAdmin(BaseAdmin):
 
写一个register的函数 def(model_class, admin_class=None) 将model和自定义的admin绑定
(利用django shell 测试. cd documents/pycharmprojects/perfectcrm, python3 manage.py shell)
获取当前models的app名字 => models.Customer._meta.app_label => crm
获取当前models的名字(小写) => models.Customer._meta.model_name => customer
dir(models.Customer._meta) 可以查看更多函数
通过自定义属性 => model 绑定model对象和自定义admin类 admin_class.model = model_class
app_name = model_class_meta.app_label 和 model_name = model._meta.model_name
将model_name 和 app_app 作为键以上面说的格式 自定义的admin_class作为值 添加到 enable_admins中
 
register(models.Customer,CustomerAdmin) 绑定两者
 
———————————————index——————————————————
主页: 将所有myAdmin模块中register的model全部列出, 并有add和change两个功能, 点击model跳转页面得到所有数据
在views里面
import自定义的myAdmin模块
将myAdmin.enable_admin这个字典传给前端
 
在index.html中
 
 
 
 
 
 
 
 
 
 
 
—————————————————————————————————
 
 
 
 
 
 
 
 
 
 
 
—————————————————————————————————
 
 
 
 
 
 
 
 
写一个register的函数 def(model_class, admin_class=None) 将model和自定义的admin绑定
(利用django shell 测试. cd documents/pycharmprojects/perfectcrm, python3 manage.py shell)
获取当前models的app名字 => models.Customer._meta.app_label => crm
获取当前models的名字(小写) => models.Customer._meta.model_name => customer
dir(models.Customer._meta) 可以查看更多函数
通过自定义属性 => model 绑定model对象和自定义admin类 admin_class.model = model_class
app_name = model_class_meta.app_label 和 model_name = model._meta.model_name
将model_name 和 app_app 作为键以上面说的格式 自定义的admin_class作为值 添加到 enable_admins中
 
register(models.Customer,CustomerAdmin) 绑定两者
 
———————————————index——————————————————
主页: 将所有myAdmin模块中register的model全部列出, 并有add和change两个功能, 点击model跳转页面得到所有数据
在views里面
import自定义的myAdmin模块
将myAdmin.enable_admin这个字典传给前端
 
在index.html中
 
 
 
 
 
 
 
 
 
 
 
—————————————————————————————————
 
 
 
 
 
 
 
 
 
 
 
—————————————————————————————————
 
 
 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/charon922/p/8966733.html
gre
今日推荐