重写Django默认的AdminSite

写在本文之前:我想绝大多数人在使用Django的时候都不会去重写AdminSite,本文只是用于扫盲,同时给自己做一个笔记。

Django自带的管理后台是django.contrib.admin.sites.AdminSite的一个实例,对于高级开发人员来说可能不能满足自身需求,此时可以通过重写AdminSite的方式对默认管理后台进行扩展。

(polls是我的应用,mysite是我的工程)

首先重写polls\\admin.py文件,编写新的MyAdminSite类,用它替代默认的AdminSite:

重写Django默认的AdminSite

然后重写polls\\apps.py,使PollsConfig指向前面编写的MyAdminSite类:

重写Django默认的AdminSite

接下来修改mysite\\\\urls.py,使新的URL指向MyAdminSite的实例:

重写Django默认的AdminSite

最后就是在settings.py中注册新的AdminSite:

由于默认的admin类会调用autodiscovery方法查找并注册默认管理后台的模块,所有如果你的项目不需要使用这些模块的话,可以使用'django.contrib.admin.apps.SimpleAdminConfig'替代默认的'django.contrib.admin'。

重写Django默认的AdminSite


分享到:


相關文章: