写在本文之前:我想绝大多数人在使用Django的时候都不会去重写AdminSite,本文只是用于扫盲,同时给自己做一个笔记。
Django自带的管理后台是django.contrib.admin.sites.AdminSite的一个实例,对于高级开发人员来说可能不能满足自身需求,此时可以通过重写AdminSite的方式对默认管理后台进行扩展。
(polls是我的应用,mysite是我的工程)
首先重写polls\\admin.py文件,编写新的MyAdminSite类,用它替代默认的AdminSite:
然后重写polls\\apps.py,使PollsConfig指向前面编写的MyAdminSite类:
接下来修改mysite\\\\urls.py,使新的URL指向MyAdminSite的实例:
最后就是在settings.py中注册新的AdminSite:
由于默认的admin类会调用autodiscovery方法查找并注册默认管理后台的模块,所有如果你的项目不需要使用这些模块的话,可以使用'django.contrib.admin.apps.SimpleAdminConfig'替代默认的'django.contrib.admin'。
閱讀更多 開發小菜鳥 的文章