Admin是如何工作的
在幕后,管理工具是如何工作的呢? 其实很简单。
当服务启动时,Django从url.py
引导URLconf,然后执行admin.autodiscover()
语句。 这个函数遍历INSTALLED_APPS
配置,并且寻找相关的 admin.py
文件。 如果在指定的app目录下找到admin.py
,它就执行其中的代码。
在books
应用程序目录下的admin.py
文件中,每次调用admin.site.register()
都将那个模块注册到管理工具中。 管理工具只为那些明确注册了的模块显示一个编辑/修改的界面。
应用程序django.contrib.auth
包含自身的admin.py
,所以Users和Groups能在管理工具中自动显示。 其它的django.contrib
应用程序,如django.contrib.redirects
,其它从网上下在的第三方Django应用程序一样,都会自行添加到管理工具。
综上所述,管理工具其实就是一个Django应用程序,包含自己的模块、模板、视图和URLpatterns。 你要像添加自己的视图一样,把它添加到URLconf里面。 你可以在Django基本代码中的django/contrib/admin
目录下,检查它的模板、视图和URLpatterns,但你不要尝试直接修改其中的任何代码,因为里面有很多地方可以让你自定义管理工具的工作方式。 (如果你确实想浏览Django管理工具的代码,请谨记它在读取关于模块的元数据过程中做了些不简单的工作,因此最好花些时间阅读和理解那些代码。)
当前内容版权归 wizardforcel 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 wizardforcel .