Django项目:CRM(客户关系管理系统)--12--05PerfectCRM实现King_admin注册功能获取内存01...
生活随笔
收集整理的這篇文章主要介紹了
Django项目:CRM(客户关系管理系统)--12--05PerfectCRM实现King_admin注册功能获取内存01...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
1 #base_admin.py 2 #Django admin 注冊功能的形式 3 # sites = { 4 # 'crm':{ 5 # 'customers':CustomerAdmin, 6 # 'customerfollowup':CustomerFollowUPAdmin, 7 # } 8 # } 9 10 class AdminRegisterException(Exception): #自定義異常 11 def __init__(self,msg): 12 self.message = msg 13 14 class BaseAdmin(object):#自定義方法 15 list_display = () 16 17 class AdminSite(object): 18 def __init__(self): 19 self.registered_sites = {} #傳到views 里調用 20 def register(self,model,admin_class=None): #默認值None 使用 BaseAdmin 21 app_name = model._meta.app_label#用內置方法獲取 APP名字 (crm) 22 model_name = model._meta.model_name#用內置方法獲取 表名 (Customer) 23 if app_name not in self.registered_sites: 24 self.registered_sites[app_name] = {} #創建 crm={} 25 if model_name in self.registered_sites[app_name]: 26 raise AdminRegisterException("app [%s] model [%s] has already registered!異常" 27 %(app_name,model_name))#自定義異常, 28 if not admin_class: 29 admin_class = BaseAdmin #默認值None 使用 BaseAdmin 30 31 self.registered_sites[app_name][model_name] = admin_class #注冊APP 32 33 site = AdminSite() #實例化類 單例模式 34 35 36 # registered_sites={} 37 # def register(model,admin_class=None): #默認值None 使用 BaseAdmin 38 # app_name = model._meta.app_label#用內置方法獲取 APP名字 (crm) 39 # model_name = model._meta.model_name#用內置方法獲取 表名 (Customer) 40 # if app_name not in registered_sites: 41 # registered_sites[app_name] = {} #創建 crm={} 42 # if model_name in registered_sites[app_name]: 43 # raise AdminRegisterException("app [%s] model [%s] has already registered!異常" 44 # %(app_name,model_name))#自定義異常 45 # if not admin_class: 46 # admin_class = BaseAdmin #默認值None 使用class BaseAdmin 47 # registered_sites[app_name][model_name] = admin_class #注冊APP #base_admin.py?
?
site.register(models.Customer,CustomerAdmin)site.register(models.CourseRecord)
1 #kingadmin.py 2 3 from crm import models 4 #print("kingadmin crm",models.Customer) 5 6 # from king_admin.base_admin import register,BaseAdmin 7 from king_admin.base_admin import site,BaseAdmin 8 9 #05客戶信息表 10 class CustomerAdmin(BaseAdmin): 11 #顯示的字段(不能包含ManyToManyField) 12 list_display= ('id','name','qq','consultant','source','consult_content','status','date') 13 14 15 16 # register(models.Customer,CustomerAdmin) 17 # register(models.CourseRecord) 18 19 site.register(models.Customer,CustomerAdmin) 20 site.register(models.CourseRecord) #kingadmin.py
?
?
print("registered_sites",base_admin.site.registered_sites)return render(request, 'king_admin/app_index.html', {"site": base_admin.site})
1 #views.py 2 from django.shortcuts import render 3 4 # from django import conf #配置文件 5 # print("dj conf:",conf) #配置文件 6 # print("dj conf:",conf.settings)#配置文件.設置 7 8 from king_admin import app_config #自動調用 動態加載類和函數 9 10 # from king_admin.base_admin import registered_sites # registered_sites={} 11 from king_admin import base_admin 12 13 def app_index(request): 14 # for app in conf.settings.INSTALLED_APPS: 15 # print(app)#循環打印 配置文件.設置.安裝應用程序#.Perfectcustomer\settings里的INSTALLED_APPS列表 16 17 # print("registered_sites",registered_sites) 18 # return render(request, 'king_admin/app_index.html') 19 20 # print("registered_sites", base_admin.registered_sites) 21 # return render(request, 'king_admin/app_index.html') 22 23 print("registered_sites",base_admin.site.registered_sites) 24 return render(request, 'king_admin/app_index.html', {"site": base_admin.site}) #views.py
?
?
?
1 {#app_index.html#} 2 3 {% extends 'king_master/king_index.html' %} 4 5 {% block right-container-content %} 6 7 {#從base_admin傳到views,views返回的值items()方法把字典轉換成列表#} 8 {% for app,app_tables in site.registered_sites.items %} 9 10 <table class="table table-hover"> 11 <thead> 12 <tr> 13 <h3>{{ app }}</h3>{#循環APP名字#} 14 </tr> 15 </thead> 16 17 <tbody> 18 {#上層循環的變量值,items()方法把字典轉換成列表#} 19 {% for model_name,admin_class in app_tables.items %} 20 <tr> 21 <th >{{ model_name }}{{ admin_class }} </th> 22 </tr> 23 {% endfor %} 24 </tbody> 25 </table> 26 {% endfor %} 27 28 {% endblock %} {#app_index.html#}?
?
?
轉載于:https://www.cnblogs.com/ujq3/p/8617309.html
總結
以上是生活随笔為你收集整理的Django项目:CRM(客户关系管理系统)--12--05PerfectCRM实现King_admin注册功能获取内存01...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AutoMapper搬运工之自定义类型转
- 下一篇: 22. 平面列表