Xadmin

admin流程
(1) 启动
autodiscover_modules('admin', register_to=site)

(2) 注册
单例模式
admin.site=AdminSite(): 单例对象

class AdminSite(object):
  def __init__(self, name='admin'):
  self._registry = {}

def register(self, model, admin_class=None, **options):
  if not admin_class:
    admin_class = ModelAdmin
  self._registry[model] = admin_class(model, self) # {Book:ModelAdmin(Book)}


admin.site.register(Book) # admin.site._registry={Book:ModelAdmin(Book)}
admin.site.register(Publish) # admin.site._registry={Book:ModelAdmin(Book),Publish:ModelAdmin(Publish)}

class Authoconfig(admin.ModelAdmin):
pass

admin.site.register(Author,Authoconfig) # admin.site._registry={Book:ModelAdmin(Book),Publish:ModelAdmin(Publish),Author:Authoconfig(Author)}


(3) 设计URL

为每一个app下的model设计增删改查4个url,以book为例:
127.0.01:8000/admin/app01/book/
127.0.01:8000/admin/app01/book/add
127.0.01:8000/admin/app01/book/1/change/
127.0.01:8000/admin/app01/book/1/delete/



url.py:
[
url(r'^index/', index), # index(reqeust)
]

猜你喜欢

转载自www.cnblogs.com/pygg/p/9146906.html