那麼從今天開始呢,我們就要開始設計屬於我們自己的admin元件,起個名字就叫stark吧(當然你願意叫什麼都可以)。
仿照admin元件實現流程,stark元件要實現四件事情:
① 在settings配置檔案中,確保
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"crm",
] name = 'stark'
def ready(self):
autodiscover_modules("stark")
基於乙個單例物件實現model類註冊
classadminsite(object):
"""stark元件的全域性類
"""def
__init__
(self):
self._registry ={}
def register(self, model, admin_class=none):
#設定配置類
ifnot
admin_class:
admin_class =modelstark
self._registry[model] =admin_class(model)
site = adminsite()
為註冊的所有的model設計增刪改查四個url,以book類為例,動態生成如下4條url:
設計增刪改查對應的檢視函式(這是整個元件最核心的部分)
crm專案 stark元件分析
stark元件 這個stark元件是非常神奇的 1,獨立的乙個元件 2,沒有model 3,沒有views stark元件 stark元件站點類 這個是乙個重點類,應該是研究這個元件的起點 做了幾件事 1,模仿admin,利用了單例模式,2,模仿admin,可以對每乙個表進行註冊 這一步引數就是模型...
crm專案 許可權元件
表結構分析 表結構設計 1,四張表 使用者表,userinfo,這個表本身不會被建立,而是用來被真正的使用者表做繼承,角色表,role,選單表,menu,許可權表,permission,2,關聯關係 使用者表和角色表多對多關聯,角色表和許可權表多對多關聯,許可權表和選單表一對多關聯,提供的操作 提供...
stark元件前戲之django路由分發的本質
之前的路由分發書寫 檢視include原始碼 def include arg,namespace none ifisinstance arg,tuple callable returning a namespace hint.try except valueerror ifnamespace rai...