首页 > 其他 > 详细

django之admin源码解析

时间:2019-04-11 17:34:33      阅读:188      评论:0      收藏:0      [点我收藏+]

解析admin的源码

第一步:项目启动,加载settings文件中的 INSTALLED_APPS

技术分享图片

 

里边有几个app就加载几个,按照注册顺序来执行。

第二步:其中加载的是admin.py,加载每一个app下的admin.py文件

技术分享图片

第三步:执行代码

技术分享图片

第四步:看admin.site走的流程

技术分享图片

 

 咱走一下源码

技术分享图片

总结一下:

技术分享图片

第五步:执行register方法

admin.site.register(Book, BookAdmin) 
admin.site.register(Publish)
class ModelAdmin(BaseModelAdmin):pass

def register(self, model_or_iterable, admin_class=None, **options):
    if not admin_class:
            admin_class = ModelAdmin
    # Instantiate the admin class to save in the registry
    self._registry[model] = admin_class(model, self)

注册就结束了!

补充一下:

在每一个app的admin .py中加上

print(admin.site._registry)   # 执行结果?

app01:

技术分享图片

app02:

技术分享图片

 

django之admin源码解析

原文:https://www.cnblogs.com/hnlmy/p/10691026.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!